Amazon Ads

2012年11月4日 星期日

【筆記】MySQL select interval

在MySQL中,要取得前幾天、前幾個月、或前幾年的日期,有個好用的方法,比如說要取一天前的datetime:
select now() - interval 1 day
結果如下:
+------------------------+
| now() - interval 1 day |
+------------------------+
| 2014-12-01 22:14:24    |
+------------------------+
1 row in set (0.00 sec)
你也可以搭配MySQL的DATE_ADD或DATE_SUB來使用,如:
select date_add(now(), interval 1 month); 
通用寫法如:
date + INTERVAL expr unit
date - INTERVAL expr unit
上列unit如下表示
秒:second
分:minute
天:day
週:week
月:month
年:year

unit也可以用多種單位表示,如使用HOUR_SECOND表示由時到秒,這時上列的表示式就要寫成'1:1:1',如:
select now(),date_sub(now(), interval '1:1:1' HOUR_SECOND);
上列執行結果如下:
+---------------------+-----------------------------------------------+
| now()               | date_sub(now(), interval '1:1:1' HOUR_SECOND) |
+---------------------+-----------------------------------------------+
| 2014-12-02 22:10:41 | 2014-12-02 21:09:40                           |
+---------------------+-----------------------------------------------+
結果顯示時、分、秒都減去一單位。

更詳盡的用法請參考MySQL 5.5 Reference Manual

沒有留言: