MySQL常用时间函数
1、NOW(),用于获取当前日期和时间函数
select now() as '当前日期和时间' from dual;
返回:2020-05-26 20:27:21
2、CURDATE(),用于获取当前日期,同CURRENT_DATE()
select curdate() as '当前日期' from dual;
返回:2020-05-26
3、CURTIME(),用于获取当前时间,同CURRENT_TIME()
select curtime() as '当前时间' from dual;
返回:20:27:57
4、CURRENT_TIMESTAMP(),用于获取当前日期和时间函数
select CURRENT_TIMESTAMP() from dual;
返回:2020-05-26 20:29:21
另外,在创建表时,可以为时间字段指定创建时间和更新时间
例如:
CREATE TABLE `t01` (
`name` varchar(64) DEFAULT '' COMMENT '名字',
`ctime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`utime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
如果使用Navicat,在设置时间字段时,要勾选"根据当前时间戳更新",还要在默认栏中填上"CURRENT_TIMESTAMP"
5、DATE()函数,用于提取时间字段的日期,例如t01的tdate为'2020-05-26 11:11:11',返回的格式为"YYYY-mm-dd"
select date(tdate) from t01;
返回:2020-05-26
6、YEAR()函数,用于提取时间字段的年,例如t01的tdate为'2020-05-26 11:11:11',返回的格式为"YYYY"
select year(tdate) from t01;
返回:2020
7、MONTH()函数,用于提取时间字段的月,例如t01的tdate为'2020-05-26 11:11:11',返回的格式为"mm",若月份前有0会忽略
select month(tdate) from t01;
返回:5
8、DAY()函数,用于提取时间字段的日期,例如t01的tdate为'2020-05-26 11:11:11',返回的格式为"dd",若日期前有0会忽略
select day(tdate) from t01;
返回:26
9、TIME()函数,用于提取时间字段的时间,例如t01的tdate为'2020-05-26 11:11:11',返回的格式为"HH:ii:ss"
select time(tdate) from t01;
返回:11:11:11
10、HOUR()函数,用于提取时间字段的小时,例如t01的tdate为'2020-05-26 11:11:11',返回的格式为"HH",若小时前有0会忽略,如08则返回8
select hour(tdate) from t01;
返回:11
11、MINUTE()函数,用于提取时间字段的分钟,例如t01的tdate为'2020-05-26 11:11:11',返回的格式为"ii",若分钟前有0会忽略,如08则返回8
select minute(tdate) from t01;
返回:11
12、SECOND()函数,用于提取时间字段的秒,例如t01的tdate为'2020-05-26 11:11:11',返回的格式为"ss",若秒前有0会忽略,如08则返回8
select HOUR(tdate) from t01;
返回:11
13、UNIX_TIMESTAMP()函数,获取当前时间戳,还可以将时间字段转换成时间戳
select unix_timestamp()
返回:当前时间的时间戳
select unix_timestamp(tdate) from t01;
返回:1590462671
时间格式化函数
DATE_FORMAT()和TIME_FORMAT()功能相同
select date_format(tdate,'%Y-%m-%d %H:%i:%s') from t01;
返回:2020-05-26 11:11:11
select date_format(tdate,'%Y-%m-%d') from t01;
返回:2020-05-26