MySQL日期时间

数据类型

类型 大小 范围 格式 用途
DATE 3字节 '1000-01-01' ~ '9999-12-31' YYYY-MM-DD 日期值
TIME 3字节 '-838:59:59' ~ '838:59:59' HH:MM:SS 时间值
YEAR 1字节 '1901' ~ '2155' YYYY 年份值
DATETIME 8字节 '1000-01-01 00:00:00' ~ '9999-12-31 23:59:59' YYYY-MM-DD HH:MM:SS 混合日期和时间值
TIMESTAMP 4字节 '1970-01-01 00:00:01' ~ '2038-01-19 03:14:07' YYYY-MM-DD HH:MM:SS 混合日期和时间值,时间戳

数据库中的日期时间类型,保存显示的时候为YYYY-MM-DD HH:MM:SS形式的ISO 8601标准,向日期时间类型保存数据时,也要使用该格式。

格式化

格式 描述 格式 描述 格式 描述
%a 缩写星期名 %b 缩写月名 %c 月,数值
%D 带英文前缀的月中的天,3rd,25th %d 月的天,00~31 %e 月的天,不补充0
%f 微秒 %H 小时,00-23,24小时制 %h 12小时制,00-12,但不带AM或PM
%l 12小时制,0-12,前面不补充0 %i 分钟,00-59 %j 年的天,000-366
%k 小时,0-23 %l 小时,1-12 %M 英文月名
%m 月,数值1-12 %p AM或PM %r 12小时,(hh:mm:ss AM 或 PM)
%S 秒(00-59) %s 秒(00-59) %T 时间, 24-小时 (hh:mm:ss)
%U 第几周 (00-53) 星期日是一周的第一天 %u 周 (00-53) 星期一是一周的第一天 %W 星期名,英文名
%w 周的天 (0=星期日, 6=星期六) %Y 年,4 位 %y 年,2 位

使用DATE_FORMATTIME_FORMAT函数进行格式化操作,如:

select DATE_FORMAT(time, '%Y年%m月%d日') from table_name;
select TIME_FORMAT(time, '%r') from table_name;

两者的区别是:TIME_FORMAT只支持时分秒的格式化,DATE_FORMAT都支持。

自动更新

设置DEFAULT CURRENT_TIMESTAMP在插入记录时,自动填入当前时间
设置DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP在插入与更新时都进行更新

常用函数

当前时间、日期

select current_date, current_timestamp, now();

current_date 当前日期,'YYYY-MM-DD'
current_timestamp 当前时间,'YYYY-MM-DD HH:mm:ss'
now() 同上

截取部分时间值

函数 说明 函数 说明 函数 说明
YEAR 年(范围从1000 到 9999) MONTH 月(范围从1到12) DAY 日(范围从1开始)
HOUR 时(范围从0到23) MINUTE 分(范围从0到59) SECOND 秒(范围从0到59)
TIME 获取时间 WEEK 一年中的第几周,从1开始计数 QUARTER 一年中的季度,从1开始计数
CURRENT_DATE 当前日期 CURRENT_TIME 当前时间 NOW 当前时间
DAYOFYEAR 一年中的第几天(从1开始) DAYOFMONTH 月份中天数(从1开始) DAYOFWEEK 星期天(1)到星期六(7)
WEEKDAY 星期一(0)到星期天(6) TO_DAYS 从元年到现在的天数(忽略时间部分) FROM_DAYS 根据天数得到日期(忽略时间部分)
TIME_TO_SEC 时间转为秒数(忽略日期部分) SEC_TO_TIME 根据秒数转为时间(忽略日期部分) UNIX_TIMESTAMP 根据日期返回秒数(包括日期与时间)
FROM_UNIXTIME 根据秒数返回日期与时间(包括日期与时间) DATEDIFF 两个日期相差的天数(忽略时间部分,前面日期减后面日期) TIMEDIFF 计算两个时间的间隔(忽略日期部分)
TIMESTAMPDIFF 根据指定单位计算两个日期时间的间隔(包括日期与时间) LAST_DAY 该月的最后一天

时间计算

函数 说明 函数 说明
ADDTIME 增加时间,只对时间有效 TIMESTAMP 添加时间,只对时间有效
DATE_ADD 根据单位添加时间 DATE_SUB 根据单位减少时间
LAST_DATE 指定月中最后一天
posted @ 2020-08-05 10:36  Mr_Kahn  阅读(94)  评论(0)    收藏  举报