Как получить сегодняшнюю дату в MySQL. Руководство для начинающих

Резюме : в этой статье вы узнаете, как запрашивать данные, соответствующие сегодняшней дате в MySQL, с помощью встроенных функций даты.

 

Получение сегодняшней даты в MySQL с использованием встроенных функций даты

Иногда вам может потребоваться запросить данные из таблицы, чтобы получить строки со столбцом даты на сегодняшний день, например:

SELECT

column_list

FROM

table_name

WHERE

expired_date = today;

 

Чтобы получить сегодняшнюю дату, вы используете функцию CURDATE() следующим образом:

mysql> SELECT CURDATE() today;

+------------+

| today      |

+------------+

| 2020-03-12 |

+------------+

1 row in set (0.00 sec)

 

Или вы можете получить часть даты из текущего времени, возвращенного функцией NOW():

mysql> SELECT DATE(NOW()) today;

+------------+

| today      |

+------------+

| 2020-03-12 |

+------------+

1 row in set (0.00 sec)

 

Таким образом, запрос должен измениться на:

SELECT

column_list

FROM

table_name

WHERE

expired_date = CURDATE();

 

Если столбец expired_date содержит часть даты и времени, следует использовать функцию DATE(), чтобы извлечь только часть даты и сравнить ее с текущей датой:

SELECT

column_list

FROM

table_name

WHERE

DATE(expired_date) = CURDATE();

 

Создание вашей хранимой функции MySQL

Если вы часто используете эту функцию CURDATE() в своих запросах и хотите заменить ее на функцию today(), чтобы сделать запросы более читабельными, вы можете создать свою собственную хранимую функцию с именем today() следующим образом:

DELIMITER $$

CREATE FUNCTION today()

RETURNS DATE

BEGIN

RETURN CURDATE();

END$$

DELIMITER ;

 

Теперь вы можете использовать созданную вами функцию today() следующим образом:

mysql> SELECT today();

+------------+

| today()    |

+------------+

| 2020-03-12 |

+------------+

1 row in set (0.00 sec)

 

Как насчет завтра? Это должно быть так просто, как:

mysql> SELECT today() + interval 1 day Tomorrow;

+------------+

| Tomorrow   |

+------------+

| 2017-07-09 |

+------------+

1 row in set (0.00 sec)

 

И вчерашний день также прост:

mysql> SELECT today() - interval 1 day Yesterday;

+------------+

| Yesterday  |

+------------+

| 2017-07-07 |

+------------+

1 row in set (0.00 sec)

 

Из этой статье вы узнали, как получить сегодняшнюю дату в MySQL, используя встроенную функцию даты. Вы также узнали, как разработать свою собственную функцию, используя хранимую функцию в MySQL.



2020-03-12T07:27:51
База данных MySQL