多语言展示
当前在线:1172今日阅读:84今日分享:32

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

MySQL提供了大量丰富的函数,在MySQL的使用中经常会用到各种函数,本文讲解的是常见的MySQL的日期与时间函数,主要用于处理日期和时间值。
工具/原料
1

电脑

2

mysql环境

3

Navicat等数据库可视化管理工具

方法/步骤
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();

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;

3

3.普通时间戳转UNIX时间戳,UNIX时间戳转普通时间戳函数UNIX_TIMESTAMP([d]):普通时间格式转UNIX时间戳,d为可选项,不填的时候返当前时间戳FROM_UNIXTIME(str):UNIX时间戳转为普通时间格式。示例SELECT UNIX_TIMESTAMP(),UNIX_TIMESTAMP(NOW()),NOW(),FROM_UNIXTIME(UNIX_TIMESTAMP());

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;

5

5.获取月份的函数MONTH(d):获取日期d的月份,阿拉伯值MONTHNAME(d):获取日期d的月份,英文值示例SELECT MONTH(NOW()),MONTHNAME(NOW());

6

6.获取星期的函数DAYNAME(d):获取日期d的英文名称DAYOFWEEK(d):获取日期d在一周中的索引,1-周日,2-周一.....7-周六WEEKDAY(d):也是获取日期d在一周中的索引,但是索引位置有所不同,0-周一,1-周二...6-周日示例SELECT DAYNAME(NOW()),DAYOFWEEK(NOW()),WEEKDAY(NOW());

7

7.获取当前是一年中的第几个星期函数WEEK(d,mode):计算某天位于一年中的第几个星期,范围是0-53或1-53WEEKOFYEAR(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());

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));#计算当前时间与一年后当前时间的日期差

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');

注意事项
1

本文并没有讲解所有的时间日期函数,而是挑了部分常用的讲解。

2

学无止境

推荐信息