MySQL的data_add功能和日期格式的功能描述
date_add(日期、时间间隔表达式类型)date_sub(日期,间隔表达式类型)这些函数执行日期的操作。日期是日期或日期值,指定开始时间。Expr是一个用于指定添加或减去从开始日期的时间间隔值的表达。表达的是一个字符串;对时间间隔的负价值,它可以从一个-类型是关键,这表明表达的解读方式。
和类型分类的关键词间隔是不区分大小写。
下表显示类型和表达式参数之间的关系:
类型的值
预期的表达格式
微秒
微秒
二
秒
分钟
分钟
小时
小时
天
天
周
周
月
月
季度
住处
年
年
second_microsecond
秒,微秒
minute_microsecond
分钟,微秒
minute_second
分钟:秒
hour_microsecond
小时,微秒
hour_second
小时:分钟:秒
hour_minute
时间:分钟
day_microsecond
天,微秒
day_second
天时:分钟:秒
day_minute
天时:分钟
day_hour
白天
year_month
years-months
MySQL允许标点符号分隔符的任何表达式格式。推荐的分隔符表所示。如果日期参数是一个日期值,你的计算只包括年、月、日部分(即,没有时间的一部分),其结果是一个日期值。否则,结果将是日期时间值。
如果另一端的表达是一个日期或日期时间值,间隔表达式类型只允许在运算符两端。对于经营者来说,间隔表达式类型只允许在右侧,因为它是从一个时间间隔提取日期或日期和时间值(无意义的。见下面的例子)。
MySQL >选择'1997-12-31 23:59:59 +间隔1秒;
1998-01-01 -> 00:00:00
MySQL >选择间隔1天+ '1997-12-31;
-> '1998-01-01
MySQL >选择'1998-01-01间隔1秒;
1997-12-31 -> 23:59:59
MySQL >选择date_add('1997-12-31 23:59:59,
间隔- 1秒);
1998-01-01 -> 00:00:00
MySQL >选择date_add('1997-12-31 23:59:59,
间隔- 1天);
1998-01-01 -> 23:59:59
MySQL >选择date_add('1997-12-31 23:59:59,
区间'1:1-> minute_second);
00:01:00 1998-01-01 ->
MySQL >选择date_sub('1998-01-01 00:00:00,
间隔1 1:1:1-> day_second);
1997-12-30 -> 22:58:59
MySQL >选择date_add('1998-01-01 00:00:00,
区间的1 10-> day_hour);
1997-12-30 -> 14:00:00
MySQL >选择date_sub('1998-01-02,间隔31天);
-> '1997-12-02
MySQL >选择date_add('1992-12-31 23:59:59. 00000 2,
区间'1. 999999-> second_microsecond);
00000 100:00:01. 1993-01-01 ->
如果你指定了一个很短的间隔值(不包括所有的时间间隔预期的类型关键字),MySQL假设你有最左部分区间值略。例如,您指定的类型和day_second,expr的值预计有天,小时,分钟,秒。如果你指定一个值,类似于'1:10,MySQL假定天数和小时数不存在,那么价值是分和秒。换句话说,'1:10'day_second解释为相当于'1:10minute_second.this是当时价值相当于MySQL的解释是费时的,不是天的时间解释。
如果添加或减去某个日期值的部分时间,则结果将自动转换为日期时间值:
MySQL >选择date_add('1999-01-01,间隔1天);
-> '1999-01-02
MySQL >选择date_add('1999-01-01,间隔1小时);
1999-01-01 -> 01:00:00
如果你使用一个日期有一个严重的错误,结果是空的。如果你加上个月,year_month或一年,并在日期日期大于增加个月期限、日期自动调整到最大日期加月。
MySQL >选择date_add('1998-01-30,间隔1个月);
-> '1998-02-28
date_format(日期格式)
日期值的格式是根据格式字符串排列的。
以下指定格式字符串中使用:
说明符
解释
%
工作日的缩写名称(Sun……)
% b
月份的缩写名称(一月十二日)
%c
月,数字形式(0…12)
%d
英语后缀的月份日期(零,第一,第二,第三,…)
%d
月的日期,数字形式(00…31)
%e
月的日期,数字形式(0…31)
% F
微秒(000000…999999)
% h
小时(00…23)
% h
小时(01…12)
%我
小时(01…12)
%我
分钟,数字形式(00…59)
% J
一年的天数(001…366)
K
小时(0…23)
% L
小时(1…12)
% m
月份名称(一月十二月)
% m
月,数字形式(00…12)
% P
上午(上午)或下午(下午)
% R
时间,12小时(小时:分钟:秒加上上午或下午)
%s
第二(00…59)
%s
第二(00…59)
%t
时间,24小时(小时:分钟,秒:秒)
%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位数)
%
字符%。
所有其他字符都被复制到结果而没有解释。
请注意,指定格式中的字符。接线员之前。
的月份和日期描述符从无到有的范围,原因是没有完全更新MySQL可以存储如'2004-00-00。MySQL >选择date_format('1997-10-04 22:23:00 '、' % W m个Y;十月1997'mysql > select'saturday)- date_format('1997-10-04 22:23:00 ',' %:%我:%s);选择date_format('1997-10-04 -> '22:23:00'mysql > 22:23:00 '、' % % %一% M % B% J)97坐0410日;'4th,277'mysql >选择date_format('1997-10-04 22:23:00 '、' % H K我%r %t %s W '22 10:23:00 PM)-> 2210;22:23:00 00 6'mysql >选择date_format('1999-01-01 ' %×% V)-显示52;