日期函数——MYSQL
目录
1,日期时间格式化 date_format, time_format
2,计算日期、时间之间的差值,单位有秒,天,月
3,字符串转换为日期函数str_to_date( )函数
4,timestamp
5,时间、秒数之间的转化 sec_to_time, time_to_sec
6,last_day( ):返回给定日期那一月份的最后一天
7,自定义生成日期、时间 makedate, maketime
8,获取系统当前日期时间 now, sysdate, locatime, current_time, curtime, localtimestamp
9,DATE( ), TIME( ) 函数,分别提取日期部分、时间部分
10,日期加减 adddate subdate date_add date_sub
11,时间加减 addtime subtime
12,提取年月日 时分秒,year month day hour minute second
1,日期时间格式化
DATE_FORMAT(日期,格式)
TIME_FORMAT(时间,格式)
MySQL日期格式化(format)取值范围。
值 | 含义 | |
---|---|---|
毫秒 | %f | |
秒 | %S、%s | 两位数字形式的秒( 00,01, ..., 59) |
分 | %I、%i | 两位数字形式的分( 00,01, ..., 59) |
小时 | 24小时制 | %H,%k : 24小时制,两位数形式(00,01, ...,23) |
12小时制 | %h, %I:12小时制,两位数形式(00,01, ...,23) | |
%l: 12小时制,位数视情况而定(0,1, ...,12),这是L的小写形式 | ||
%i | 返回分钟数 | |
%p | 返回AM上午或PM下午 | |
%r | 12小时制,时间形式(hh:mm:ss AM 或 PM) | |
%T | 24小时制,时间形式(HH:mm:ss) | |
周 | %W | 一周中每一天的名称(Sunday,Monday, ...,Saturday) |
%a | 一周中每一天名称的缩写(Sun,Mon, ...,Sat) | |
%w | 以数字形式标识周(0=Sunday,1=Monday, ...,6=Saturday) | |
%U | 数字表示周数,星期天为周中第一天 | |
%u | 数字表示周数,星期一为周中第一天 | |
天 | %d | 两位数字表示月中天数(01,02, ...,31) |
%e | 数字表示月中天数(1,2, ...,31) | |
%D | 英文后缀表示月中天数(1st,2nd,3rd ...) | |
%j | 以三位数字表示年中天数(001,002, ...,366) | |
月 | %M | 英文月名(January,February, ...,December) |
%b | 英文缩写月名(Jan,Feb, ...,Dec) | |
%m | 两位数字表示月份(01,02, ...,12) | |
%c | 数字表示月份(1,2, ...,12) | |
年 | %Y | 四位数字表示的年份(2015,2016...) |
%y | 两位数字表示的年份(15,16...) | |
文字输出 | %文字 | 直接输出文字内容 |
2,计算日期、时间之间的差值,单位有秒,天,月
#结果为:时分秒格式 timediff("12:13:45","10:13:45"),timediff("12:13:45","15:23:25") , #前者-后者,可能会返回负数 # 结果:天数 datediff(now(),"2020-07-01"), datediff(now(),"2020-08-12"), #这个不考虑时间,只计算天数的差值 #计算加一个数后的年月,计算两个年月之间相差的月数 period_add(202008,17), period_add("202009",1), period_diff(202009,201904) #前者-后者
3,字符串转换为日期函数str_to_date( )函数
#注意前者月份是阿拉伯数字,所以格式里是%m,但后者月份是英文形式,所以格式里使用%M #格式里年月日的顺序要跟字符串中对应 str_to_date("5 24 2019" ,"%m %d %Y") as a, STR_TO_DATE("August 10 2017", "%M %d %Y") as b
结果
4,TIMESTAMP( )函数
第二个参数只有1个数字时,是当做秒数计算的,而后面指定minute, day都报错
暂时还不清楚有什么用
5,时间、秒数之间的转换
6,last_day( ):返回给定日期那一月份的最后一天
7,自定义生成日期、时间
makedate(year, 天数) #根据指定的天数,返回指定年份的日期 maketime(hour, minute, second) #组合成一个时间
举例
8,获取系统当前日期时间(PS:返回格式: 日期,时间 都有)
函数: 注意后面的几个函数括号可以省略
select now(), sysdate(), #必须带着括号 localtime, localtime(), # 返回结果都是当前日期时间格式,后面的这几种括号可有可无 localtimestamp, localtimestamp(), current_timestamp, current_timestamp();
结果:
9,只返回日期 或时间,两者不是同时存在,括号不能省略(否则报错)
日期: curdate( ), current_date( ) 时间:curtime( ),current_time( )
10,DATE( ), TIME( ) 函数,分别提取日期部分、时间部分
11,日期加减,年月日 时分秒 都可以
adddate(now(),3),subdate(now(),-3), adddate(now(),-3), subdate(now(),3), # 可使用负数,adddate用负数代表减去几天,subdate使用负数代表加上几天 adddate(now(),interval 10 minute),subdate(now(),interval 10 minute) # adddate, subdate也可以指定参数interval date_add(now(),interval 3 day),date_sub(now(),interval 3 day) # 使用date_add和date_sub必须带上参数Interval n 单位类型
时间加减,单位只能是秒
subtime(now(),3), addtime(Now(),10)
12,提取年月日,只要参数是日期-时间格式都可
提取时分秒,只要参数是日期-时间格式都可