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;