欢迎进入linux社区论坛,与200万技术人员互动交流 >>进入 mysql select 1997-12-31 23:59:59 + interval 1 second; - 1998-01-01 00:00:00 mysql select interval 1 day + 1997-12-31; - 1998-01-01 mysql select 1998-01-01 - interval 1 second; - 1
欢迎进入linux社区论坛,与200万技术人员互动交流 >>进入
mysql> select 1997-12-31 23:59:59 + interval 1 second;
-> 1998-01-01 00:00:00
mysql> select interval 1 day + 1997-12-31;
-> 1998-01-01
mysql> select 1998-01-01 - interval 1 second;
-> 1997-12-31 23:59:59
mysql> select date_add(1997-12-31 23:59:59,
interval 1 second);
-> 1998-01-01 00:00:00
mysql> select date_add(1997-12-31 23:59:59,
interval 1 day);
-> 1998-01-01 23:59:59
mysql> select date_add(1997-12-31 23:59:59,
interval 1:1 minute_second);
-> 1998-01-01 00:01:00
mysql> select date_sub(1998-01-01 00:00:00,
interval 1 1:1:1 day_second);
-> 1997-12-30 22:58:59
mysql> select date_add(1998-01-01 00:00:00,
interval -1 10 day_hour);
-> 1997-12-30 14:00:00
mysql> select date_sub(1998-01-02, interval 31 day);
-> 1997-12-02
mysql> select extract(year from 1999-07-02);
-> 1999
mysql> select extract(year_month from 1999-07-02 01:02:03);
-> 199907
mysql> select extract(day_minute from 1999-07-02 01:02:03);
-> 20102
如果你指定太短的间隔值(不包括type关键词期望的间隔部分),mysql假设你省掉了间隔值的最左面部分。例如,如果你指定一个type是day_second,值expr被希望有天、小时、分钟和秒部分。如果你象1:10这样指定值,mysql假设日子和小时部分是丢失的并且值代表分钟和秒。换句话说,1:10 day_second以它等价于1:10 minute_second的方式解释,这对那mysql解释time值表示经过的时间而非作为一天的时间的方式有二义性。如果你使用确实不正确的日期,结果是null。如果你增加month、year_month或year并且结果日期大于新月份的最大值天数,日子在新月用最大的天调整。
mysql> select date_add('1998-01-30', interval 1 month);
-> 1998-02-28
注意,从前面的例子中词interval和type关键词不是区分大小写的。
to_days(date)
给出一个日期date,返回一个天数(从0年的天数)。
mysql> select to_days(950501);
-> 728779
mysql> select to_days('1997-10-07');
-> 729669
to_days()不打算用于使用格列高里历(1582)出现前的值。
from_days(n)
给出一个天数n,返回一个date值。
mysql> select from_days(729669);
-> '1997-10-07'
to_days()不打算用于使用格列高里历(1582)出现前的值。
date_format(date,format)
根据format字符串格式化date值。下列修饰符可以被用在format字符串中: %m 月名字(january……december)
%w 星期名字(sunday……saturday)
%d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)
%y 年, 数字, 4 位
%y 年, 数字, 2 位
%a 缩写的星期名字(sun……sat)
%d 月份中的天数, 数字(00……31)
%e 月份中的天数, 数字(0……31)
%m 月, 数字(01……12)
%c 月, 数字(1……12)
%b 缩写的月份名字(jan……dec)
%j 一年中的天数(001……366)
%h 小时(00……23)
%k 小时(0……23)
%h 小时(01……12)
%i 小时(01……12)
%l 小时(1……12)
%i 分钟, 数字(00……59)
%r 时间,12 小时(hh:mm:ss [ap]m)
%t 时间,24 小时(hh:mm:ss)
%s 秒(00……59)
%s 秒(00……59)
%p am或pm
%w 一个星期中的天数(0=sunday ……6=saturday )
%u 星期(0……52), 这里星期天是星期的第一天
%u 星期(0……52), 这里星期一是星期的第一天
%% 一个文字“%”。
所有的其他字符不做解释被复制到结果中。
mysql> select date_format('1997-10-04 22:23:00', '%w %m %y');
-> 'saturday october 1997'
mysql> select date_format('1997-10-04 22:23:00', '%h:%i:%s');
-> '22:23:00'
mysql> select date_format('1997-10-04 22:23:00',
'%d %y %a %d %m %b %j');
-> '4th 97 sat 04 10 oct 277'
mysql> select date_format('1997-10-04 22:23:00',
'%h %k %i %r %t %s %w');
-> '22 22 10 10:23:00 pm 22:23:00 00 6'
mysql3.23中,在格式修饰符字符前需要%。在mysql更早的版本中,%是可选的。
time_format(time,format)
[1] [2] [3]