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;
5 时间和秒钟转换的函数
TIME_TO_SEC(time)
将 time 转化为秒并返回结果值。转化的公式为: 小时*3600+分钟 *60+秒
SEC_TO_TIME(seconds)
将 seconds 描述转化为包含小时、分钟和秒的时间
代码示例
SELECT
TIME_TO_SEC(CURTIME()),
SEC_TO_TIME(53515)
FROM DUAL;