MySql中时间的比较

2014-07-01 23:14:53|?次阅读|上传:wustguangh【已有?条评论】发表评论

关键词:MySQL, 数据库|来源:唯设编程网

-> 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)出现前的值。

发表评论0条 】
网友评论(共?条评论)..
MySql中时间的比较