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

Sådan sammenlignes dato i SQL

I dette afsnit lærer vi om, hvordan datoer kan sammenlignes i SQL.

  • Vi kan sammenligne enhver tilfældig dato med en anden dato gemt i en kolonne i en tabel.
  • Denne sammenligning kan foretages ved hjælp af sammenligningsoperatorer såsom >, <,>=,>=, =.
  • datoen () funktion bruges også i SQL til at sammenligne to forskellige datoer.
  • Datatypen DATE tillader lagring af datoerne i SQL-tabeller i formatet "ÅÅÅÅ-MM-DD". Men mens du skriver forespørgslen for at sammenligne datoerne, kan datoen, der skal skrives i forespørgslen, være i et afslappet strengformat.
  • I henhold til det afslappede strengformat kan forskellige dele af datoen adskilles med et hvilket som helst tegn imellem. MySQL tillader også, at en dato skrives i en forespørgsel uden nogen separator, forudsat at strengen skrevet som en dato danner en fornuftig dato.

Eksempel 1:

Skriv en forespørgsel for at finde alle de medarbejdere, hvis tiltrædelsesdato er større end eller den samme som den 5. maj 1999.

Opret en database med navnet "dbemployee ” med en tabel ’medarbejder’ oprettet i den. Vi vil overveje denne tabel og database for alle de følgende eksempler.

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)
 

Vi har oprettet en ny database med navnet 'dbemployee', og med kommandoen 'USE dbemployee' har vi valgt denne database. Derefter har vi med kommandoen 'CREATE TABLE' oprettet en tabel 'employee' i databasen 'dbemployee'.

Nu vil vi indsætte data i ovenstående oprettede tabel.

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)
 

Efter at have indsat data i tabellen, vil vi nu hente alle poster i en tabel.

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)
 

Lad os nu skrive en forespørgsel til den givne problemformulering.

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

Output:

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

Der er tre medarbejdere med medarbejder-id 1, 2 og 3, hvis tiltrædelsesdato er længere end 5. maj 1999.

Eksempel 2:

Skriv en forespørgsel for at finde alle de medarbejdere, hvis tiltrædelsesdato er mindre end eller den samme som den 5. maj 1999.

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

Output:

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

To medarbejdere med medarbejder-id 4 og 5, hvis tiltrædelsesdato er mindre end 5. maj 1999.

Eksempel 3:

Skriv en forespørgsel for at finde alle de medarbejdere, hvis tiltrædelsesdato er den samme som den 8. august 1987.

mysql> SELECT *FROM employee WHERE Emp_Joining_Date = 19870818; 

Output:

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

Der er kun én medarbejder med medarbejder-id 4, hvis tiltrædelsesdato er lig med 18. august 1987.

Brug af date()

Eksempel 4:

Skriv en forespørgsel ved hjælp af dato ()-funktionen for at finde alle de medarbejdere, hvis tiltrædelsesdato er den samme som den 26. juni 2021.

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

Output:

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

Der er kun én medarbejder med medarbejder-id 2, hvis tiltrædelsesdato er lig med den 26. juni 2021.


  1. Sådan laver du en inventardatabase i Microsoft Access

  2. SQL Server - stop eller bryd udførelse af et SQL-script

  3. 6 almindelige fejlscenarier for MySQL og MariaDB, og hvordan man løser dem

  4. Oprettelse og sletning af en PostgreSQL-database på Ubuntu 16.04