TIMESTAMPDIFF
Синтаксис
TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)
Описание
Возвращает datetime_expr2 - datetime_expr1, где datetime_expr1 и datetime_expr2 — выражения даты или времени. Одно выражение может быть датой, а другое — временем; значение даты обрабатывается как время с частью времени '00:00:00', где это необходимо. Единица измерения результата (целое число) задается аргументом unit. Допустимые значения для unit такие же, как и в описании функции TIMESTAMPADD(), т.е. MICROSECOND, SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER или YEAR.
TIMESTAMPDIFF также может использоваться для расчета возраста.
Примеры
SELECT TIMESTAMPDIFF(MONTH,'2003-02-01','2003-05-01'); +------------------------------------------------+ | TIMESTAMPDIFF(MONTH,'2003-02-01','2003-05-01') | +------------------------------------------------+ | 3 | +------------------------------------------------+ SELECT TIMESTAMPDIFF(YEAR,'2002-05-01','2001-01-01'); +-----------------------------------------------+ | TIMESTAMPDIFF(YEAR,'2002-05-01','2001-01-01') | +-----------------------------------------------+ | -1 | +-----------------------------------------------+ SELECT TIMESTAMPDIFF(MINUTE,'2003-02-01','2003-05-01 12:05:55'); +----------------------------------------------------------+ | TIMESTAMPDIFF(MINUTE,'2003-02-01','2003-05-01 12:05:55') | +----------------------------------------------------------+ | 128885 | +----------------------------------------------------------+
Расчет возраста:
SELECT CURDATE(); +------------+ | CURDATE() | +------------+ | 2019-05-27 | +------------+ SELECT TIMESTAMPDIFF(YEAR, '1971-06-06', CURDATE()) AS age; +------+ | age | +------+ | 47 | +------+ SELECT TIMESTAMPDIFF(YEAR, '1971-05-06', CURDATE()) AS age; +------+ | age | +------+ | 48 | +------+
Возраст по состоянию на 2014-08-02:
SELECT name, date_of_birth, TIMESTAMPDIFF(YEAR,date_of_birth,'2014-08-02') AS age FROM student_details; +---------+---------------+------+ | name | date_of_birth | age | +---------+---------------+------+ | Chun | 1993-12-31 | 20 | | Esben | 1946-01-01 | 68 | | Kaolin | 1996-07-16 | 18 | | Tatiana | 1988-04-13 | 26 | +---------+---------------+------+
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/timestampdiff/