Database
 sql >> база данни >  >> RDS >> Database

Как да сравним датата в SQL

В този раздел ще научим как датите могат да се сравняват в SQL.

  • Можем да сравним произволна дата с друга дата, съхранена в колона на таблица.
  • Това сравнение може да се направи с помощта на оператори за сравнение като >, <,>=,>=, =.
  • Дата () функцията също се използва в SQL за сравняване на две различни дати.
  • Типът данни DATE позволява съхраняване на датите в SQL таблици във формат „ГГГГ-ММ-ДД“. Но докато пишете заявката за сравняване на датите, датата, която трябва да бъде записана в заявката, може да бъде в спокоен низов формат.
  • Според облекчения формат на низовете различните части на датата могат да бъдат разделени с помощта на произволен знак между тях. MySQL също така позволява да се записва дата в заявка без никакъв разделител, при условие че низът, написан като дата, образува разумна дата.

Пример 1:

Напишете заявка, за да намерите всички служители, чиято дата на присъединяване е по-голяма или същата като 5 май 1999 г.

Създайте база данни с името „dbemployee ” с създадена в него таблица „служител“. Ще разгледаме тази таблица и база данни за всички следващи примери.

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)

Създадохме нова база данни с името „dbemployee“ и с командата „USE dbemployee“ избрахме тази база данни. След това с командата „CREATE TABLE“ създадохме таблица „служител“ в базата данни „dbemployee“.

Сега ще вмъкнем данни в създадената по-горе таблица.

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)

След като вмъкнем успешно данни в таблицата, сега ще извлечем всички записи на таблица.

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)

Сега нека напишем заявка за дадения проблем.

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

Изход:

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

Има трима служители с идентификационни номера на служители 1, 2 и 3, чиято дата на присъединяване е по-голяма от 5 май 1999 г.

Пример 2:

Напишете заявка, за да намерите всички служители, чиято дата на присъединяване е по-малка или същата като 5 май 1999 г.

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

Изход:

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

Двама служители с идентификационни номера на служители 4 и 5, чиято дата на присъединяване е по-малка от 5 май 1999 г.

Пример 3:

Напишете заявка, за да намерите всички служители, чиято дата на присъединяване е същата като 8 август 1987 г.

mysql> SELECT *FROM employee WHERE Emp_Joining_Date = 19870818;

Изход:

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

Има само един служител с идентификатор на служител 4, чиято дата на присъединяване е равна на 18 август 1987 г.

Използване на date()

Пример 4:

Напишете заявка с помощта на функцията дата (), за да намерите всички служители, чиято дата на присъединяване е същата като 26 юни 2021 г.

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

Изход:

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

Има само един служител с идентификатор на служител 2, чиято дата на присъединяване е равна на 26 юни 2021 г.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Намерете колоните, върнати от функция с таблична стойност (примери за T-SQL)

  2. Какво представляват базите данни?

  3. Използване на Geekbench 3 за оценка на производителността на сървъра на база данни

  4. Грешка в индексиран изглед със скаларни агрегати

  5. Модел на данни за автосервиз