In diesem Abschnitt lernen wir, wie Datumsangaben in SQL verglichen werden können.
- Wir können jedes zufällige Datum mit einem anderen Datum vergleichen, das in einer Spalte einer Tabelle gespeichert ist.
- Dieser Vergleich kann mit Hilfe von Vergleichsoperatoren durchgeführt werden wie >, <,>=,>=, =.
- Das Datum () Die Funktion wird auch in SQL verwendet, um zwei verschiedene Daten zu vergleichen.
- Der Datentyp DATE ermöglicht das Speichern der Daten in SQL-Tabellen im Format „YYYY-MM-DD“. Aber beim Schreiben der Abfrage zum Vergleichen der Daten kann das in die Abfrage zu schreibende Datum in einem gelockerten Zeichenfolgenformat vorliegen.
- Gemäß dem gelockerten Zeichenfolgenformat können verschiedene Teile des Datums durch ein beliebiges Zeichen dazwischen getrennt werden. MySQL erlaubt es auch, ein Datum ohne Trennzeichen in eine Abfrage zu schreiben, vorausgesetzt, der als Datum geschriebene String bildet ein vernünftiges Datum.
Beispiel 1:
Schreiben Sie eine Abfrage, um alle Mitarbeiter zu finden, deren Eintrittsdatum größer oder gleich dem 5. Mai 1999 ist.
Erstellen Sie eine Datenbank mit dem Namen „dbemployee “ mit einer darin erstellten Tabelle „employee“. Wir werden diese Tabelle und Datenbank für alle folgenden Beispiele berücksichtigen.
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)
Wir haben eine neue Datenbank mit dem Namen „dbemployee“ erstellt und mit dem Befehl „USE dbemployee“ diese Datenbank ausgewählt. Dann haben wir mit dem Befehl „CREATE TABLE“ eine Tabelle „employee“ in der Datenbank „dbemployee“ erstellt.
Jetzt werden wir Daten in die oben erstellte Tabelle einfügen.
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)
Nach dem erfolgreichen Einfügen von Daten in die Tabelle werden nun alle Datensätze einer Tabelle abgerufen.
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)
Lassen Sie uns jetzt eine Abfrage für die gegebene Problemstellung schreiben.
mysql> SELECT *FROM employee WHERE Emp_Joining_Date >= '1999-05-05';
Ausgabe:
+--------+------------------+------------+------------+------------------+
| 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)
Es gibt drei Mitarbeiter mit den Mitarbeiter-IDs 1, 2 und 3, deren Eintrittsdatum nach dem 5. Mai 1999 liegt.
Beispiel 2:
Schreiben Sie eine Abfrage, um alle Mitarbeiter zu finden, deren Eintrittsdatum kleiner oder gleich dem 5. Mai 1999 ist.
mysql> SELECT *FROM employee WHERE Emp_Joining_Date <= '19990505';
Ausgabe:
+--------+-------------------+------------+------------+------------------+
| 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)
Zwei Mitarbeiter mit den Mitarbeiter-IDs 4 und 5, deren Eintrittsdatum vor dem 5. Mai 1999 liegt.
Beispiel 3:
Schreiben Sie eine Abfrage, um alle Mitarbeiter zu finden, deren Eintrittsdatum gleich dem 8. August 1987 ist.
mysql> SELECT *FROM employee WHERE Emp_Joining_Date = 19870818;
Ausgabe:
+--------+-------------+----------+------------+------------------+
| 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)
Es gibt nur einen Mitarbeiter mit der Mitarbeiter-ID 4, dessen Eintrittsdatum der 18. August 1987 ist.
Mit Datum()
Beispiel 4:
Schreiben Sie eine Abfrage mit der Funktion date(), um alle Mitarbeiter zu finden, deren Eintrittsdatum gleich dem 26. Juni 2021 ist.
mysql> SELECT *FROM employee WHERE date (Emp_Joining_Date) = '2021-06-26';
Ausgabe:
+--------+------------------+----------+------------+------------------+
| 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)
Es gibt nur einen Mitarbeiter mit der Mitarbeiter-ID 2, dessen Eintrittsdatum der 26. Juni 2021 ist.