日期和时间类型
表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。
每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使用"零"值。
获取当前年月日时分秒
select now(),CURRENT_TIMESTAMP() ;
获取当前日期
select CURDATE(),CURRENT_DATE() ;
获取当前时间 时分秒
select CURTIME() , CURRENT_TIME() ;
ADDDATE(d,n)
计算起始日期 d 加上 n 天的日期
select ADDDATE("2022-01-26",7) ,ADDDATE(now(),10) ;
ADDTIME(t,n)
时间 t 加上 n 秒的时间
select ADDTIME('2022-01-02 11:11:11',59),ADDTIME(now(),60*60);
DATE()
从日期或日期时间表达式中提取日期值
select date('2022-01-02 11:11:11') ,date(now());
DAY(d)
返回日期值 d 的日期部分
select day('2022-01-02 11:11:11'),day(now()) ;
DATEDIFF(d1,d2)
计算日期 d1->d2 之间相隔的天数
select DATEDIFF("2021-12-23","2022-01-01") ,DATEDIFF("2022-01-01","2021-12-23");
DATE_FORMAT(d,f)
将时间根据自定义格式展示
select DATE_FORMAT(now(),"%Y-%m-%d %r") ,DATE_FORMAT(now(),"%Y-%m-%d %H:%I:%S");
DAYNAME(d)
返回日期 d 是星期几,返回是英文,如 Monday,Tuesday
select DAYNAME(now()),DAYNAME("2022-02-14");
DAYOFMONTH(d)
计算日期 d 是本月的第几天
select DAYOFMONTH(now()),DAYOFMONTH("2022-02-14");
DAYOFWEEK(d)
日期 d 今天是星期几,1 星期日,2 星期一,以此类推 注意 星期日是1
select DAYOFWEEK(now()) ,DAYOFWEEK("2022-02-14");
EXTRACT (type FROM d)
从日期 d 中获取指定的值,type 指定返回的值
select EXTRACT(DAY from now()) #本月第几天 ,EXTRACT(WEEK from now()) # 本年的第几个星期 ,EXTRACT(HOUR from now()) #当前的小时 ,EXTRACT(SECOND from now()) #当前的秒 ,EXTRACT(MINUTE from now()) #当前的分
UNIX_TIMESTAMP(d,f)
获取时间戳 默认是当前日期
select UNIX_TIMESTAMP(), UNIX_TIMESTAMP('2022-09-06 12:03:23');
FROM_UNIXTIME(d,f)
时间戳转日期
select FROM_UNIXTIME(1662432276), FROM_UNIXTIME(1662432276,"%Y-%m-%d") , FROM_UNIXTIME(1662432276,"%Y-%m-%d %H") , FROM_UNIXTIME(1662432276,"%Y年%m月%d日") ;