MySQL自学篇(十)——日期函数
日期和时间函数
(1)获取当前日期的函数和时间的函数
CURDATE()和CURRENT_DATE()函数,获取当前日期
select current_date(),curdate(),curdate()+0;
curdate()+0 表示将当前时间转化为数值型
CURTIME()和CURRENT_TIME()获取当前时间
select curtime(),current_time(),current_time()+0;
current_time()+0 表示将当前时间转化为数值型
(2)获取日期+时间的函数
CURRENT_TIMESTAMP(),LOCALTIME(),NOW(),SYSDATE()4个函数的作用相同,都是用于获取当前日期和时间
select current_timestamp(),localtime(),now(),sysdate();
(3)UNIX时间戳函数
UNIX_TIMESTAMP(date)若无参数调用,则返回一个UNIX时间戳作为无符号整数。若用date来调用UNIX_TIMESTAMP(),它会将参数值以‘1970-01-01 00:00:00’GMT后的秒数的形式返回。
select unix_timestamp(),unix_timestamp(now()),now();
(4)返回UTC日期的函数和返回UTC时间的函数
UTC_DATE()返回当前UTC日期值,格式为‘YYYY-MM-DD’或者‘YYYYMMDD’,具体格式取决于函数是否用在字符串或数字语境中。
select utc_date(),utc_date()+0;
(5)获取月份的函数MONTH(date)和MONTHNAME(date)
select month(now()),monthname(now());
(6)获取星期的函数DAYNAME(d)、DAYOFWEEK(d)和WEEKDAY(d)
select dayname(now()),dayofweek(now()),weekday(now());
(7)获取星期的函数WEEK(d)和WEEKOFYEAR(d)
select week(now()),weekofyear(now());
(8)获取天数的函数DAYOFYEAR()和DAYOFMONTH()
select dayofyear(now()),dayofweek(now());
(9)获取年份、季度、小时、分钟和秒数的函数
select year(now()),quarter(now()),hour(now()),minute(now()),second(now());
(10)获取日期的指定值的函数EXTRACT(type FROM date)
select extract(year from now()),extract(year_month from now());
(11)时间和秒数的转换函数TIME_TO_SEC(time)
select time_to_sec('23:23:00');
(12)将日期和时间格式化的函数
DATE_FORMATE(date,formate)根据formate指定的格式显示date值。主要formate格式如下表所示。
DATE_FORMATE时间日期格式
说明符
说明
%a
工作日的缩写名称
%b
月份的缩写名称
%c
月份
%D
带有英语后缀的该月日期
%d
该月日期,数字形式
%e
该月日期,数字形式
%f
微妙
%H
以两位数表示24小时
%h,%I
以两位数表示12小时
%i
分钟,数字形式
%j
一年中的天数
%k
以24小时
%l
以12小时
%M
月份名称
%m
月份,数字形式
%p
上午AM或下午PM
%r
时间,12小时制
%S,%s
以两位数表示秒
%T
时间,24小时制
%U
周,周日为每周的第一天
%u
周,周一为每周的第一天
%V
周,周日为每周的第一天
%v
周,周一为每周的第一天
%W
工作日名称
%w
一周中的每日
%X
该周的年份,其中周日为每周的第一天
%x
该周的年份,其中周一为每周的第一天
%Y
4位数形式表示年份
%y
2位数形式表示年份
%%
‘%’文字字符
select date_format('2015-01-04','%W%M%Y') as col1;