本文共 2355 字,大约阅读时间需要 7 分钟。
MySQL 提供了丰富的日期和时间函数,帮助开发者高效管理和操作日期时间数据。本文将详细介绍这些函数的功能及其用法。
NOW()
和时间戳相关函数now()
是最常用的函数,返回当前日期和时间。它等同于以下函数:
current_timestamp()
current_timestamp
localtime()
localtimestamp()
-- 示例set @dt = now(); -- 当前日期和时间select date(@dt); -- 只获取日期部分select time(@dt); -- 只获取时间部分
sysdate()
函数sysdate()
与 now()
函数类似,但在函数执行时动态获取当前值。
-- 示例set @dt = sysdate(); -- 当前日期和时间select date(sysdate()); -- 只获取日期部分
可以使用 EXTRACT()
函数从日期时间字符串中提取各个部分:
set @dt = '2008-09-10 07:15:30.123456';select extract(year from @dt), -- 2008 extract(month from @dt), -- 9 extract(day from @dt), -- 10 extract(hour from @dt), -- 7 extract(minute from @dt), -- 15 extract(seconds from @dt), -- 30 extract(microsecond from @dt); -- 123456
还可以提取更长的组合:
select extract(day_microsecond from @dt) -- 10071530123456
DATE_ADD()
和 DATE_SUB()
函数可以用于增加或减少日期和时间:
select date_add('2008-08-08', interval 1 day); -- 增加1天select date_sub('2008-08-08', interval 1 day); -- 减少1天
UNIX_TIMESTAMP()
和 FROM_UNIXTIME()
用于将日期和时间转换为 Unix 时间戳:
select unix_timestamp('2008-08-08 12:00:00'); -- 获取 Unix 时间戳select from_unixtime(unix_timestamp('2008-08-08 12:00:00')); -- 再转换回日期和时间
STR_TO_DATE()
和 TIME_TO_STR()
用于将字符串转换为日期和时间:
select str_to_date('08/09/2008', '%m/%d/%Y'); -- '2008-08-09'select time_to_sec('01:00:05'); -- 转换为秒
DATE_FORMAT()
和 TIME_FORMAT()
用于将日期和时间格式化为特定格式:
select date_format('2008-08-08', '%Y-%m-%d'); -- '2008-08-08'
使用 DATE_ADD()
或 DATE_SUB()
方法可以轻松实现时区转换:
select date_add('2008-08-08 12:00:00', interval -8 hour); -- 东八时区转换为 UTC
DAYNAME()
和 MONTHNAME()
返回星期和月份名称:
select dayname('2008-08-08'); -- 'Friday'select monthname('2008-08-08'); -- 'August'
DAYOFWEEK()
和 DAYOFMONTH()
返回日期在周和月中的位置:
select dayofweek('2008-08-08'); -- 6(Sunday 为 1)
DATEDIFF()
和 TIMEDIFF()
用于计算两个日期或时间的差值:
select datediff('2008-08-08', '2008-08-01'); -- 7 天select timediff('2008-08-08 08:08:08', '2008-08-08 00:00:00'); -- 8:08:08
使用 GET_FORMAT()
函数获取日期和时间的格式字符串:
select get_format(datetime, 'usa'); -- '%Y-%m-%d %h:%i:%s'
以上就是MySQL 中常用的日期和时间函数及其用法。通过合理组合这些函数,可以实现复杂的日期时间操作。
转载地址:http://jiqvz.baihongyu.com/