一、指定时间
1、获取指定时间的时间戳
select TIMESTAMP('2023-04-27 16:45:00');
2、获取指定时间的年月日
select DATE('2023-04-27 16:45:00');
3、获取指定时间的年
select YEAR('2023-04-27 16:45:00');
4、获取指定时间的月
select MONTH('2023-04-27 16:45:00');
5、获取指定时间的日
select DAY('2023-04-27 16:45:00');
6、获取指定时间的时分秒
select TIME('2023-04-27 16:45:00');
7、获取指定时间的Unix时间戳
Unix时间戳是指格林威治时间自1970年1月1日00时00分00秒(此时位为东八区的北京时间为:1970-01-01 08:00:00)至当前时间的总秒数。
select UNIX_TIMESTAMP('1970-01-01 08:00:00');
select UNIX_TIMESTAMP('19700101080000');
8、获取指定Unix时间戳的年月日时分秒
select FROM_UNIXTIME('0');
二、当前时间
1、获取当前时间的年月日时分秒,格式是YYYY-MM-DD hh:mm:ss
select CURRENT_TIMESTAMP;
select NOW();
select SYSDATE();
2、获取当前时间的年月日,格式是YYYY-MM-DD
select CURRENT_DATE;
select CURDATE();
3、获取当前时间的时分秒,格式是hh:mm:ss
select CURRENT_TIME;
select CURTIME();
4、获取当前时间的Unix时间戳
Unix时间戳是指格林威治时间自1970年1月1日00时00分00秒(此时位为东八区的北京时间为:1970-01-01 08:00:00)至当前时间的总秒数。
select UNIX_TIMESTAMP();
三、转化和计算
1、格式从YYYY-MM-DD hh:mm:ss转为YYYYMMDDhhmmss
select CURRENT_TIMESTAMP + 0;
select NOW() + 0;
select SYSDATE() + 0;
2、将指定的Unix时间戳转化为指定格式的时间
select FROM_UNIXTIME('0','%Y-%m-%d %H:%i:%s');
3、字符串转年月日时分秒
select STR_TO_DATE('2023-04-27 16:45:00', '%Y-%m-%d %H:%i:%s')
4、年月日时分秒转化为指定格式的字符串
select DATE_FORMAT('2023-04-27 16:45:00', '%Y-%m-%d %H:%i:%s')
5、计算指定日期指定时长之后的日期时间
select DATE_ADD('2023-04-27', INTERVAL 2 HOUR);
6、计算两个时间之间指定单位的时长
select TIMESTAMPDIFF(SECOND,'2023-04-27 16:45:00','2023-04-27 16:45:30');