sql >> Databáze >  >> RDS >> Database

Jak porovnat datum v SQL

V této části se dozvíme o tom, jak lze porovnávat data v SQL.

  • Jakékoli náhodné datum můžeme porovnat s jiným datem uloženým ve sloupci tabulky.
  • Toto srovnání lze provést pomocí operátorů porovnání jako >, <,>=,>=, =.
  • datum () funkce se také používá v SQL k porovnání dvou různých dat.
  • Datový typ DATE umožňuje ukládat data v tabulkách SQL ve formátu „RRRR-MM-DD“. Ale při psaní dotazu pro porovnání dat může být datum zapsané v dotazu ve formátu uvolněného řetězce.
  • Podle formátu uvolněného řetězce lze různé části data oddělit libovolným znakem mezi nimi. MySQL také umožňuje zapsat datum v dotazu bez jakéhokoli oddělovače, pokud řetězec zapsaný jako datum tvoří rozumné datum.

Příklad 1:

Napište dotaz a vyhledejte všechny zaměstnance, jejichž datum nástupu je větší nebo stejné jako 5. května 1999.

Vytvořte databázi s názvem „dbemployee ” s tabulkou ‚zaměstnanec‘, která je v ní vytvořena. Tuto tabulku a databázi budeme uvažovat pro všechny následující příklady.

mysql> CREATE DATABASE dbemployee;
Query OK, 1 row affected (0.00 sec)
mysql> USE dbemployee;
Database changed
mysql> CREATE TABLE employee (Emp_Id INT NOT NULL, Emp_Name VARCHAR (20), Emp_Dept VARCHAR (20), Emp_Salary INT, Emp_Joining_Date DATE);
Query OK, 0 rows affected (0.09 sec)

Vytvořili jsme novou databázi s názvem ‚dbemployee‘ a příkazem ‚USE dbemployee‘ jsme tuto databázi vybrali. Poté jsme pomocí příkazu „CREATE TABLE“ vytvořili tabulku „employee“ v databázi „dbemployee“.

Nyní vložíme data do výše vytvořené tabulky.

mysql> INSERT INTO employee VALUES (1, "Sana Khan", "HRM", 45000, "1999-06-17");
Query OK, 1 row affected (0.05 sec)
mysql> INSERT INTO employee VALUES (2, "Anupama Deshmukh", "Finance", 32000, CURDATE ());
Query OK, 1 row affected (0.11 sec)


mysql> INSERT INTO employee VALUES (3, "Kajal Shah", "Purchasing", 71000, "2020-12-12");
Query OK, 1 row affected (0.09 sec)


mysql> INSERT INTO employee VALUES (4, "Mayuri Koli", "Accounts", 64000, "1987-08-18");
Query OK, 1 row affected (0.09 sec)


mysql> INSERT INTO employee VALUES (5, "Surili Maheshwari", "Production", 30000, "1970-10-10");
Query OK, 1 row affected (0.09 sec)

Po úspěšném vložení dat do tabulky nyní načteme všechny záznamy tabulky.

mysql> SELECT *FROM employee;
+--------+-------------------+------------+------------+------------------+
| Emp_Id | Emp_Name          | Emp_Dept   | Emp_Salary | Emp_Joining_Date |
+--------+-------------------+------------+------------+------------------+
|      1 | Sana Khan         | HRM        |      45000 | 1999-06-17       |
|      2 | Anupama Deshmukh  | Finance    |      32000 | 2021-06-26       |
|      3 | Kajal Shah        | Purchasing |      71000 | 2020-12-12       |
|      4 | Mayuri Koli       | Accounts   |      64000 | 1987-08-18       |
|      5 | Surili Maheshwari | Production |      30000 | 1970-10-10       |
+--------+-------------------+------------+------------+------------------+
5 rows in set (0.00 sec)

Nyní napíšeme dotaz pro daný problém.

mysql> SELECT *FROM employee WHERE Emp_Joining_Date >= '1999-05-05';

Výstup:

+--------+------------------+------------+------------+------------------+
| Emp_Id | Emp_Name         | Emp_Dept   | Emp_Salary | Emp_Joining_Date |
+--------+------------------+------------+------------+------------------+
|      1 | Sana Khan        | HRM        |      45000 | 1999-06-17       |
|      2 | Anupama Deshmukh | Finance    |      32000 | 2021-06-26       |
|      3 | Kajal Shah       | Purchasing |      71000 | 2020-12-12       |
+--------+------------------+------------+------------+------------------+
3 rows in set (0.00 sec)

Existují tři zaměstnanci s ID zaměstnance 1, 2 a 3, jejichž datum nástupu je vyšší než 5. května 1999.

Příklad 2:

Napište dotaz a vyhledejte všechny zaměstnance, jejichž datum nástupu je menší nebo stejné jako 5. května 1999.

mysql> SELECT *FROM employee WHERE Emp_Joining_Date <= '19990505';

Výstup:

+--------+-------------------+------------+------------+------------------+
| Emp_Id | Emp_Name          | Emp_Dept   | Emp_Salary | Emp_Joining_Date |
+--------+-------------------+------------+------------+------------------+
|      4 | Mayuri Koli       | Accounts   |      64000 | 1987-08-18       |
|      5 | Surili Maheshwari | Production |      30000 | 1970-10-10       |
+--------+-------------------+------------+------------+------------------+
2 rows in set (0.00 sec)

Dva zaměstnanci s ID zaměstnance 4 a 5, jejichž datum nástupu je kratší než 5. května 1999.

Příklad 3:

Napište dotaz a vyhledejte všechny zaměstnance, jejichž datum nástupu je stejné jako 8. srpna 1987.

mysql> SELECT *FROM employee WHERE Emp_Joining_Date = 19870818;

Výstup:

+--------+-------------+----------+------------+------------------+
| Emp_Id | Emp_Name    | Emp_Dept | Emp_Salary | Emp_Joining_Date |
+--------+-------------+----------+------------+------------------+
|      4 | Mayuri Koli | Accounts |      64000 | 1987-08-18       |
+--------+-------------+----------+------------+------------------+
1 row in set (0.00 sec)

Existuje pouze jeden zaměstnanec s ID zaměstnance 4, jehož datum nástupu se rovná 18. srpnu 1987.

Použití date()

Příklad 4:

Napište dotaz pomocí funkce datum () a vyhledejte všechny zaměstnance, jejichž datum nástupu je stejné jako 26. června 2021.

mysql> SELECT *FROM employee WHERE date (Emp_Joining_Date) = '2021-06-26';

Výstup:

+--------+------------------+----------+------------+------------------+
| Emp_Id | Emp_Name         | Emp_Dept | Emp_Salary | Emp_Joining_Date |
+--------+------------------+----------+------------+------------------+
|      2 | Anupama Deshmukh | Finance  |      32000 | 2021-06-26       |
+--------+------------------+----------+------------+------------------+
1 row in set (0.00 sec)

Existuje pouze jeden zaměstnanec s ID zaměstnance 2, jehož datum nástupu se rovná 26. červnu 2021.


  1. Jak zdravotnický průmysl používá databáze

  2. Oracle SQL – Identifikujte sekvenční rozsahy hodnot

  3. Python REST API s Flask, Connexion a SQLAlchemy – část 3

  4. Prizmatické vztahy