1. 程式人生 > >mysql中關於時間點的判斷

mysql中關於時間點的判斷

最近做一個專案遇到這樣一個問題:

有一條關於超市活動的欄位,這條活動比如開始時間是2013-10-7 結束時間是2013-10-15,儲存到資料庫mysql中的時候儲存的都是當前日期的時間戳,使用php的strtotime()這個函式,而使用這個函式儲存的當然是當前日期第0:0:0這個時間點的時間戳,實際上2013-10-15這天活動在當天的24小時以內還是有效的,並不是到當天的0:0:0就失效。

所以在做contab的時候就需要面臨這麼一個問題,不能使用時間戳做判斷,而必須使用當前日期為幾號來判斷這條活動是否過期。比如每天凌晨1點做contab,搜尋資料庫,15號凌晨這天的日期號為15,不大於過期日期,所以不設定這條記錄過期,16號凌晨判斷,當前日期號大於過期日期,那麼這條記錄設定為過期。

具體時間可以這麼操作:

mysq中 DATE_FORMAT(now(), '%Y-%m-%d %H:%i:%s');返回格式化後的日期

TO_DAYS(時間戳)返回該時間戳下的日期號,

TO_DAYS(NOW()) - TODAYS(過期時間戳) >0 那麼則判斷為失效