在数据库管理和数据处理过程中,日期和时间的处理是一个重要的方面。MySQL 提供了一组强大的日期和时间函数,允许用户对日期和时间数据进行各种操作和计算。这些函数可以帮助用户进行日期的格式化、日期之间的差异计算、从日期中提取特定部分等操作。
以下列举了一些常用的 MySQL 日期和时间函数及其详细示例,以帮助开发者更高效地处理和管理日期和时间数据。
NOW()
返回当前日期和时间。
SELECT NOW();
-- 输出: 2023-10-03 14:30:00
CURDATE()
返回当前日期。
SELECT CURDATE();
-- 输出: 2023-10-03
CURTIME()
返回当前时间。
SELECT CURTIME();
-- 输出: 14:30:00
DATE()
从日期或日期时间表达式中提取日期部分。
SELECT DATE('2023-10-03 14:30:00');
-- 输出: 2023-10-03
TIME()
从日期时间表达式中提取时间部分。
SELECT TIME('2023-10-03 14:30:00');
-- 输出: 14:30:00
YEAR()
, MONTH()
, DAY()
分别返回日期的年份、月份和日。
SELECT YEAR('2023-10-03'), MONTH('2023-10-03'), DAY('2023-10-03');
-- 输出: 2023, 10, 3
HOUR()
, MINUTE()
, SECOND()
分别返回时间的小时、分钟和秒。
SELECT HOUR('14:30:00'), MINUTE('14:30:00'), SECOND('14:30:00');
-- 输出: 14, 30, 0
DATE_ADD()
向日期添加时间间隔。
SELECT DATE_ADD('2023-10-03', INTERVAL 7 DAY);
-- 输出: 2023-10-10
DATE_SUB()
从日期减去时间间隔。
SELECT DATE_SUB('2023-10-03', INTERVAL 7 DAY);
-- 输出: 2023-09-26
DATEDIFF()
返回两个日期之间的天数差。
SELECT DATEDIFF('2023-10-03', '2023-09-26');
-- 输出: 7
TIMEDIFF()
返回两个时间之间的时间差。
SELECT TIMEDIFF('14:30:00', '12:00:00');
-- 输出: 02:30:00
LAST_DAY()
返回给定日期所在月份的最后一天。
SELECT LAST_DAY('2023-10-03');
-- 输出: 2023-10-31
STR_TO_DATE()
将字符串按指定格式转换为日期。
SELECT STR_TO_DATE('03-10-2023', '%d-%m-%Y');
-- 输出: 2023-10-03
DATE_FORMAT()
将日期格式化为指定格式的字符串。
SELECT DATE_FORMAT('2023-10-03', '%d/%m/%Y');
-- 输出: 03/10/2023
EXTRACT()
从日期中提取指定部分。
SELECT EXTRACT(YEAR FROM '2023-10-03');
-- 输出: 2023
UNIX_TIMESTAMP()
返回日期的 Unix 时间戳。
SELECT UNIX_TIMESTAMP('2023-10-03 14:30:00');
-- 输出: 1696336200
FROM_UNIXTIME()
将 Unix 时间戳转换为日期时间。
SELECT FROM_UNIXTIME(1696336200);
-- 输出: 2023-10-03 14:30:00
WEEK()
返回日期所在年的星期数。
SELECT WEEK('2023-10-03');
-- 输出: 40
QUARTER()
返回日期所在年的季度(1到4)。
SELECT QUARTER('2023-10-03');
-- 输出: 4
WEEKDAY()
返回日期是一周中的第几天,0 表示星期一,6 表示星期日。
SELECT WEEKDAY('2023-10-03');
-- 输出: 1(表示星期二)
MySQL 提供了一套丰富而强大的日期和时间函数,可以帮助开发者高效地处理和操作日期和时间数据。通过这些函数,你可以轻松地进行日期的格式化、计算日期差异、提取日期的特定部分等等。这些函数在数据分析、报表生成、系统日志管理等方面都有广泛的应用。希望这些示例能够帮助你更好地理解和使用 MySQL 的日期和时间函数。