Di bagian ini, kita akan belajar tentang bagaimana tanggal dapat dibandingkan dalam SQL.
- Kita dapat membandingkan tanggal acak apa pun dengan tanggal lain yang disimpan dalam kolom tabel.
- Perbandingan ini dapat dilakukan dengan bantuan operator perbandingan seperti >, <,>=,>=, =.
- Tanggal () fungsi juga digunakan dalam SQL untuk membandingkan dua tanggal yang berbeda.
- Tipe data DATE memungkinkan penyimpanan tanggal dalam tabel SQL dalam format ‘YYYY-MM-DD’. Namun saat menulis kueri untuk membandingkan tanggal, tanggal yang akan ditulis dalam kueri bisa dalam format string yang santai.
- Menurut format string santai, bagian tanggal yang berbeda dapat dipisahkan menggunakan karakter apa pun di antaranya. MySQL juga mengizinkan tanggal untuk ditulis dalam kueri tanpa pemisah apa pun, asalkan string yang ditulis sebagai tanggal membentuk tanggal yang masuk akal.
Contoh 1:
Tulis kueri untuk menemukan semua karyawan yang tanggal bergabungnya lebih dari atau sama dengan 5 Mei 1999.
Buat database dengan nama “dbemployee ” dengan tabel 'karyawan' dibuat di dalamnya. Kami akan mempertimbangkan tabel dan database ini untuk semua contoh berikut.
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)
Kami telah membuat database baru dengan nama 'dbemployee', dan dengan perintah 'USE dbemployee', kami telah memilih database ini. Kemudian, dengan perintah 'CREATE TABLE', kita telah membuat tabel 'employee' di database 'dbemployee'.
Sekarang, kita akan memasukkan data ke dalam tabel yang dibuat di atas.
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)
Setelah berhasil memasukkan data ke dalam tabel, sekarang kita akan mengambil semua record 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)
Sekarang, mari tulis kueri untuk pernyataan masalah yang diberikan.
mysql> SELECT *FROM employee WHERE Emp_Joining_Date >= '1999-05-05';
Keluaran:
+--------+------------------+------------+------------+------------------+
| 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)
Ada tiga karyawan dengan id karyawan 1, 2 dan 3 yang tanggal bergabungnya lebih dari 5 Mei 1999.
Contoh 2:
Tulis kueri untuk menemukan semua karyawan yang tanggal bergabungnya kurang dari atau sama dengan 5 Mei 1999.
mysql> SELECT *FROM employee WHERE Emp_Joining_Date <= '19990505';
Keluaran:
+--------+-------------------+------------+------------+------------------+
| 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)
Dua karyawan dengan id karyawan 4 dan 5 yang tanggal bergabungnya kurang dari 5 Mei 1999.
Contoh 3:
Tulis kueri untuk menemukan semua karyawan yang tanggal bergabungnya sama dengan 8 Agustus 1987.
mysql> SELECT *FROM employee WHERE Emp_Joining_Date = 19870818;
Keluaran:
+--------+-------------+----------+------------+------------------+
| 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)
Hanya ada satu karyawan dengan id karyawan 4 yang tanggal bergabungnya sama dengan 18 Agustus 1987.
Menggunakan tanggal()
Contoh 4:
Tulis kueri menggunakan fungsi tanggal () untuk menemukan semua karyawan yang tanggal bergabungnya sama dengan 26 Juni 2021.
mysql> SELECT *FROM employee WHERE date (Emp_Joining_Date) = '2021-06-26';
Keluaran:
+--------+------------------+----------+------------+------------------+
| 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)
Hanya ada satu karyawan dengan id karyawan 2 yang tanggal bergabungnya sama dengan 26 Juni 2021.