1 获取日期、时间
CURDATE() ,CURRENT_DATE()
返回当前日期,只包含年、月、日
CURTIME() , CURRENT_TIME()
返回当前时间,只包含时、分、秒
NOW() / SYSDATE() / CURRENT_TIMESTAMP() / LOCALTIME() / LOCALTIMESTAMP()
返回当前系统日期和时间
UTC_DATE()
返回UTC(世界标准时间)日期
UTC_TIME()
返回UTC(世界标准时间)时间
代码示例
SELECT CURDATE(), CURRENT_DATE(), CURTIME(), NOW(), SYSDATE(), UTC_DATE(), UTC_TIME() FROM DUAL;
2 日期与时间戳的转换
UNIX_TIMESTAMP()
以UNIX时间戳的形式返回当前时间。SELECT UNIX_TIMESTAMP() - >1634348884
UNIX_TIMESTAMP(date)
将时间date以UNIX时间戳的形式返回。
FROM_UNIXTIME(timestamp)
将UNIX时间戳的时间转换为普通格式的时间
代码示例
SELECT UNIX_TIMESTAMP(), UNIX_TIMESTAMP('2021-10-01 12:12:32'), FROM_UNIXTIME(1635173853), FROM_UNIXTIME(1633061552) FROM DUAL;
3 获取月份、星期、星期数、天数等函数
YEAR(date) / MONTH(date) / DAY(date)
返回具体的日期值
HOUR(time) / MINUTE(time) / SECOND(time)
返回具体的时间值
MONTHNAME(date)
返回月份:January,…
DAYNAME(date)
返回星期几:MONDAY,TUESDAY…SUNDAY
WEEKDAY(date)
返回周几,注意,周1是0,周2是1,…,周日是6
QUARTER(date)
返回日期对应的季度,范围为1~4
WEEK(date) , WEEKOFYEAR(date)
返回一年中的第几周
DAYOFYEAR(date)
返回日期是一年中的第几天
DAYOFMONTH(date)
返回日期位于所在月份的第几天
DAYOFWEEK(date)
返回周几,注意:周日是1,周一是2,…,周六是7
代码示例
SELECT YEAR(CURDATE()), MONTH(CURDATE()), DAY(CURDATE()), HOUR(CURTIME()), MINUTE(NOW()), SECOND(SYSDATE()), MONTHNAME('2021-10-26'), DAYNAME('2021-10-26'), WEEKDAY('2021-10-26'), QUARTER(CURDATE()), WEEK(CURDATE()), DAYOFYEAR(NOW()), DAYOFMONTH(NOW()), DAYOFWEEK(NOW()) FROM DUAL;
4 日期的操作函数
EXTRACT(type FROM date)
返回指定日期中特定的部分,type指定返回的值
SELECT EXTRACT(SECOND FROM NOW()), EXTRACT(DAY FROM NOW()), EXTRACT(HOUR_MINUTE FROM NOW()), EXTRACT(QUARTER FROM '2021-05-12') FROM DUAL;