本文為博主原創,未經允許不得轉載:
在寫sql的時候,經常要在sql中傳值時間,對時間進行計算並過濾。之前都是將時間在后台計算好,直接傳值給sql,
今天發現,有一個更方便的sql函數,可以簡化很多代碼。這個函數就是 DATE_SUB()。
DATE_SUB 將從一個日期/時間值中減去一個時間值(時間間隔)。
其函數中用法表達式為:DATE_SUB(date,INTERVAL expr type),
type的參數可以為一下類型:
MICROSECOND |
SECOND |
MINUTE |
HOUR |
DAY |
WEEK |
MONTH |
QUARTER |
YEAR |
SECOND_MICROSECOND |
MINUTE_MICROSECOND |
MINUTE_SECOND |
HOUR_MICROSECOND |
HOUR_SECOND |
HOUR_MINUTE |
DAY_MICROSECOND |
DAY_SECOND |
DAY_MINUTE |
DAY_HOUR |
YEAR_MONTH |
使用舉例如下:
--一年前 select DATE_SUB(CURDATE(), INTERVAL 1 YEAR) as yearTime --一天前 select DATE_SUB(CURDATE(), INTERVAL 1 DAY) as selecttime --一月前 select DATE_SUB(CURDATE(), INTERVAL 1 MONTH) as selecttime --三年前 select DATE_SUB(CURDATE(), INTERVAL 3 YEAR) as yearTime
- SELECT DATE_SUB('2010-08-12', INTERVAL 3 DAY) AS NewDate
結果: 2010-08-09
2.SELECT DATE_SUB('2010-08-12', INTERVAL '3-2' YEAR_MONTH) AS NewDate
結果: 2007-06-12
3.SELECT DATE_SUB('2011-09-14 2:44:36', INTERVAL '2:26' HOUR_MINUTE) AS NewDate
結果: 2011-09-14 00:18:36