mysql 查詢時間條件問題

今天遇到了一個問題,跟大家分享一下。

有這樣一個sql:

select * from order where created > now() - 259200

目的是爲了查詢三天內的訂單, 理解上259200是秒數,轉化爲72個小時,也就是3天。
但是事與願違。 mysql中時間算減法居然不是這麼算的。他是這麼算的:
now() - X00 X<99, 那麼就是減去X分鐘。
now() - X0000, 那麼就是減去多少小時,但是當減去的小時數超過今天的時候那麼最少只能到當前天的00:00:00.這樣就造成了問題。

那麼怎麼解決這個問題呢?可以使用mysql自帶的時間函數,如下:

select * from order where created > date_add(now(), interval -1 day);

或者直接從代碼中把> ?的這個部分傳遞過來。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章