Database
 sql >> Database >  >> RDS >> Database

Come confrontare la data in SQL

In questa sezione impareremo come confrontare le date in SQL.

  • Possiamo confrontare qualsiasi data casuale con un'altra data memorizzata in una colonna di una tabella.
  • Questo confronto può essere effettuato con l'aiuto di operatori di confronto tali >, <,>=,>=, =.
  • La data () la funzione viene utilizzata anche in SQL per confrontare due date diverse.
  • Il tipo di dati DATE consente di memorizzare le date nelle tabelle SQL nel formato "AAAA-MM-GG". Ma durante la scrittura della query per confrontare le date, la data da scrivere nella query può essere in un formato stringa rilassato.
  • Secondo il formato stringa rilassato, diverse parti della data possono essere separate utilizzando qualsiasi carattere intermedio. MySQL consente anche di scrivere una data in una query senza alcun separatore, a condizione che la stringa scritta come data formi una data ragionevole.

Esempio 1:

Scrivi una query per trovare tutti i dipendenti la cui data di assunzione è maggiore o uguale al 5 maggio 1999.

Crea un database con il nome "dbemployee ” con una tabella 'dipendente' creata al suo interno. Prenderemo in considerazione questa tabella e database per tutti i seguenti esempi.

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)

Abbiamo creato un nuovo database con il nome 'dbemployee' e con il comando 'USE dbemployee' abbiamo selezionato questo database. Quindi, con il comando 'CREA TABELLA', abbiamo creato una tabella 'employee' nel database 'dbemployee'.

Ora inseriremo i dati nella tabella creata sopra.

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)

Dopo aver inserito correttamente i dati nella tabella, recupereremo tutti i record di una tabella.

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)

Ora, scriviamo una query per la dichiarazione del problema specificata.

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

Risultato:

+--------+------------------+------------+------------+------------------+
| 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)

Ci sono tre dipendenti con ID dipendente 1, 2 e 3 la cui data di assunzione è successiva al 5 maggio 1999.

Esempio 2:

Scrivi una query per trovare tutti i dipendenti la cui data di assunzione è inferiore o uguale al 5 maggio 1999.

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

Risultato:

+--------+-------------------+------------+------------+------------------+
| 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)

Due dipendenti con ID dipendente 4 e 5 la cui data di assunzione è inferiore al 5 maggio 1999.

Esempio 3:

Scrivi una query per trovare tutti i dipendenti la cui data di assunzione è la stessa dell'8 agosto 1987.

mysql> SELECT *FROM employee WHERE Emp_Joining_Date = 19870818;

Risultato:

+--------+-------------+----------+------------+------------------+
| 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)

Esiste un solo dipendente con ID dipendente 4 la cui data di assunzione è pari al 18 agosto 1987.

Utilizzo di date()

Esempio 4:

Scrivi una query utilizzando la funzione date () per trovare tutti i dipendenti la cui data di inserimento è la stessa del 26 giugno 2021.

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

Risultato:

+--------+------------------+----------+------------+------------------+
| 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)

Esiste un solo dipendente con ID dipendente 2 la cui data di assunzione è pari al 26 giugno 2021.