Mysql基础函数,常用日期时间函数详解

2025-12-21 18:09:13

1、1.获取当前日期和当前时间的函数

CURDATE()或CURRENT_DATE():获取当前日期函数,返回值按“YYYY-MM-DD”或"YYYYMMDD"格式,格式根据函数在字符串或是数字语境而定

CURTIME()或CURRENT_TIME():获取当前时间,返回值按“HH:MM:SS”或"HHMMSS"格式,格式根据函数在字符串或是数字语境而定

示例

SELECT CURDATE(),CURDATE()+0,CURRENT_DATE(),CURTIME(),CURTIME()+0,CURRENT_TIME();

Mysql基础函数,常用日期时间函数详解

2、2.获取当前日期+时间的函数

CURRENT_TIMESTAMP()或LOCALTIME()或NOW()或SYSDATE():获取当前日期+时间的函数,返回值按“YYYY-MM-DD HH:MM:SS”或"YYYYMMDDHHMMSS"格式,格式根据函数在字符串或是数字语境而定

示例

SELECT CURRENT_TIMESTAMP(),LOCALTIME(),NOW(),SYSDATE(),CURRENT_TIMESTAMP()+0,LOCALTIME()+0,NOW()+0,SYSDATE()+0;

Mysql基础函数,常用日期时间函数详解

3、3.普通时间戳转UNIX时间戳,UNIX时间戳转普通时间戳函数

UNIX_TIMESTAMP([d]):普通时间格式转UNIX时间戳,d为可选项,不填的时候返当前时间戳

FROM_UNIXTIME(str):UNIX时间戳转为普通时间格式。

示例

SELECT UNIX_TIMESTAMP(),UNIX_TIMESTAMP(NOW()),NOW(),FROM_UNIXTIME(UNIX_TIMESTAMP());

Mysql基础函数,常用日期时间函数详解

4、4.返回UTC(世界标准时间)日期的函数,返回UTC时间的函数,返回值按“YYYY-MM-DD”或"YYYYMMDD"格式,格式根据函数在字符串或是数字语境而定

UTC_DATE():返回UTC(世界标准时间)日期的函数

UTC_TIME():返回UTC(世界标准时间)时间的函数

示例

SELECT UTC_DATE(),UTC_TIME(),UTC_DATE()+0,UTC_TIME()+0;

Mysql基础函数,常用日期时间函数详解

5、5.获取月份的函数

MONTH(d):获取日期d的月份,阿拉伯值

MONTHNAME(d):获取日期d的月份,英文值

示例

SELECT MONTH(NOW()),MONTHNAME(NOW());

Mysql基础函数,常用日期时间函数详解

6、6.获取星期的函数

DAYNAME(d):获取日期d的英文名称

DAYOFWEEK(d):获取日期d在一周中的索引,1-周日,2-周一.....7-周六

WEEKDAY(d):也是获取日期d在一周中的索引,但是索引位置有所不同,0-周一,1-周二...6-周日

示例

SELECT DAYNAME(NOW()),DAYOFWEEK(NOW()),WEEKDAY(NOW());

Mysql基础函数,常用日期时间函数详解

7、7.获取当前是一年中的第几个星期函数

WEEK(d,mode):计算某天位于一年中的第几个星期,范围是0-53或1-53

WEEKOFYEAR(d,mode):计算某天位于一年中的第几个星期,范围是1-53,相当于WEEK(d,3);

mode 的范围

0 - 周日 - 0~53 - 本年度中有一个周日

1 - 周一 - 0~53 - 本年度有3天以上

2 - 周日 - 1~53 - 本年度中有一个周日

3 - 周一 - 1~53 - 本年度有3天以上

4 - 周日 - 0~53 - 本年度有3天以上

5 - 周一 - 0~53 - 本年度有1个周一

6 - 周日 - 1~53 - 本年度有3天以上

7 - 周一 - 1~53 - 本年度有1个周一

示例

SELECT NOW(),WEEK(NOW()),WEEK(NOW(),0),WEEK(NOW(),1),WEEK(NOW(),3),WEEKOFYEAR(NOW());

Mysql基础函数,常用日期时间函数详解

8、8.获取天数函数

DOYORYEAR(d):获取日时间d是一年中的第几天,范围是1-366

DOYOFMONTH(d):获取日期时间d是当月中的第几天,范围是1-31

DAYOFWEEK(d):获取日期时间d是当周中的第几天,范围是1-7,周日为1,周六为7

示例

SELECT NOW(),DAYOFYEAR(NOW()),DAYOFMONTH(NOW()),DAYOFWEEK(NOW());

Mysql基础函数,常用日期时间函数详解

9、9.计算日期的函数

DATE_ADD(d,INTERVAL expr type):日期加运算,type格式见下文

ADDDATE(d,INTERVAL expr type):日期加运算,type格式见下文

DATE_SUB(d,INTERVAL expr type):日期减运算,type格式见下文

SUBDATE(d,INTERVAL expr type):日期减运算,type格式见下文

ADDTIME(d,expr):时间加运算

SUBTIME(d,expr):时间减运算

DATEDIFF(d1,d2):两个日期间的间隔天数

type的格式

SECOND 秒 SECONDS 

MINUTE 分钟 MINUTES 

HOUR 时间 HOURS 

DAY 天 DAYS 

MONTH 月 MONTHS 

YEAR 年 YEARS 

MINUTE_SECOND 分钟和秒 "MINUTES:SECONDS" 

HOUR_MINUTE 小时和分钟 "HOURS:MINUTES" 

DAY_HOUR 天和小时 "DAYS HOURS" 

YEAR_MONTH 年和月 "YEARS-MONTHS" 

HOUR_SECOND 小时, 分钟, "HOURS:MINUTES:SECONDS" 

DAY_MINUTE 天, 小时, 分钟 "DAYS HOURS:MINUTES" 

DAY_SECOND 天, 小时, 分钟, 秒 "DAYS HOURS:MINUTES:SECONDS"

示例

SELECT NOW(),DATE_ADD(NOW(),INTERVAL 2 DAY),ADDDATE(NOW(),INTERVAL 300 SECOND);#当前时间添加两天,添加300秒

SELECT NOW(),DATE_SUB(NOW(),INTERVAL 1 MONTH),SUBDATE(NOW(),INTERVAL 300 MINUTE);#当前时间减少一个月,减少300分钟

SELECT NOW(),ADDTIME(NOW(),'1:1:1'),SUBTIME(NOW(),'2:2:2');#当前时间添加1小时1分1秒,当前时间减少2小时2分2秒

SELECT NOW(),DATEDIFF(NOW(),DATE_ADD(NOW(),INTERVAL 1 YEAR));#计算当前时间与一年后当前时间的日期差

Mysql基础函数,常用日期时间函数详解

Mysql基础函数,常用日期时间函数详解

Mysql基础函数,常用日期时间函数详解

Mysql基础函数,常用日期时间函数详解

10、10.日期格式化函数

日期格式化通配符说明

%a : 工作日的缩写(Sun,Mon,...Sat)

%b : 月份的缩写(Jun,Feb,...,Dec)

%c : 数字形式的月份(1,...,12)

%D : 带有英文后缀的该月日期(1st,2nd,3rd....)

%d : 数字形式的日期,不足两位前方补零(01,02,...,31)

%e : 数字形式的日期(1,...,31)

%f : 微秒

%H : 以24小时制表示当前是多少点,不足两位前方补零(01,02,...,24)

%h,%I: 以12小时制表示当前是多少点,不足两位前方补零(01,02,...,12)

%i : 数字形式的分钟(00,01,...,59)

%j : 一年中的第几天(001,...,366)

%k : 以24小时制表示当前是多少点(1,2,...,24)

%l : 以12小时制表示当前是多少点(1,2,...,12)

%M : 月份名称(Junuary,...,December)

%m : 月份名称数字形式(01,...,12)

%p : AM/PM

%r : 时间(12小时制,如9:00:00 AM)

%S,%s : 秒的数字形式(00,01,...,59)

%T : 时间(24小时制,如9:00:00)

%U : 第几周(00,53),周日为第一天

%u : 第几周(00,53),周一为第一天

%V : 第几周(01,53),周一为第一天,和%X一起使用

%v : 第几周(01,53),周一为第一天,和%x一起使用

%W : 工作日名称(周日,周一...)

%w : 一周中的每日(0=周日...6=周六)

%X : 该周的年份,周日为第一天,数字形式4位数,和%V一起用

%x : 该周的年份,周一为第一天,数字形式4位数,和%v一起用

%Y : 4位数字形式的年份

%y : 2位数字形式的年份

%% :%符号

DATE_FORMAT():日期格式化函数

示例

SELECT DATE_FORMAT(NOW(),'%Y %m %d'),DATE_FORMAT(NOW(),'%X %V');

Mysql基础函数,常用日期时间函数详解

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢