一、日期与时间类型
数据类型 |
含义 |
对应范围 |
DATETIME |
日期和时间 |
1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 |
DATE |
日期 |
1000-01-01~ 9999-12-31 |
YEAR |
年 |
1901~2155(4位时) 1970~2069(70~69)(2位时) |
TIME |
时间 |
-838:59:59~838:59:59 |
注意:日期和时间类型的数据需要用“ ”或 ‘ ’括起来;
在MYSQL中日期必须用YYYY-MM-DD格式输入,时间必须用HH:MM:SS格式输入。
二、日期与时间的函数
1、now():返回日期和时间 :输入列最好设置为datetime类型
2、date_format () :更改时间显示格式
DATE_FORMAT(date,format) date 参数是合法的日期。format 规定日期/时间的输出格式,要用‘’括起来。
格式 |
描述 |
%a |
缩写星期名 |
%b |
缩写月名 |
%c |
月,数值 |
%D |
带有英文前缀的月中的天 |
%d |
月的天,数值(00-31) |
%e |
月的天,数值(0-31) |
%f |
微秒 |
%H |
小时 (00-23) |
%h |
小时 (01-12) |
%I |
小时 (01-12) |
%i |
分钟,数值(00-59) |
%j |
年的天 (001-366) |
%k |
小时 (0-23) |
%l |
小时 (1-12) |
%M |
月名 |
%m |
月,数值(00-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) 星期一是一周的第一天 |
%V |
周 (01-53) 星期日是一周的第一天,与 %X 使用 |
%v |
周 (01-53) 星期一是一周的第一天,与 %x 使用 |
%W |
星期名 |
%w |
周的天 (0=星期日, 6=星期六) |
%X |
年,其中的星期日是周的第一天,4 位,与 %V 使用 |
%x |
年,其中的星期一是周的第一天,4 位,与 %v 使用 |
%Y |
年,4 位 |
%y |
年,2 位 |
3、返回当前时间的年份:year(date), date 参数是合法的日期
4、返回当前时间的月份:month(date)
5、返回当前时间的天数:day(date)
6、返回当前时间当月最后一天:last_day(date)
7、返回当前时间当月的总天数:day(last_day(date)
8、返回多少间隔前/后的日期:
- date_add(date,INTERVAL expr type) 返回多少间隔后的日期
- date_sub(date,INTERVAL expr type) 返回多少间隔前的日期
date是指定的日期,INTERVAL为关键词,expr是具体的时间间隔,type是时间单位。
注意:type可以复合型的,比如YEAR_MONTH。对应复合型的type,需要使用引号对两个参数进行引用起来,中间用任何非数字字符作为间隔即可,并且不能使用负数。
如:
select DATE_SUB(NOW(), INTERVAL 1 DAY) as 一天前;
select DATE_SUB(NOW(), INTERVAL 1 month) as 一个月前;
select DATE_SUB(NOW(), INTERVAL 1 week) as 一周前;
select DATE_SUB(NOW(), INTERVAL 1 year) as 一年前;
select DATE_ADD(NOW(),INTERVAL 1 hour) 一个小时后。
可用的type表如下:
编辑
9、计算两个时间的的差值:(间隔日/月/年等)
datediff函数与timestampdiff函数的区别:
- datediff(startdate大时间, enddate小时间),求日期差,返回值是相差的天数,不能定位到小时、分钟和秒。
(注意:如果日期1比日期2大,结果为正;如果日期1比日期2小,结果为负)返回类型int,其中startdate和enddate 参数是合法的日期表达式。
- timestampdiff(datepart, startdate小时间, enddate大时间),求时间戳的差,
有参数设置,可以精确到天(DAY)、小时(HOUR),分钟(MINUTE)和秒(SECOND),使用起来比datediff函数更加灵活。对于比较的两个时间,时间小的放在前面,时间大的放在后面。(注意:与diffdate()函数的正、负号规则刚好相反,日期1大于日期2,结果为负,日期1小于日期2,结果为正。)
标签:00,01,59,函数,日期,时间,SQL,date From: https://www.cnblogs.com/lqyskyline/p/17145161.html