我試圖在UNIX中使用UNIX時間戳切換到DATETIME
列,並且在查找日期之間進行比較時遇到了一些問題。DATETIME比較?
我嘗試使用+
和-
運算符比較兩個DATETIME
s,結果對我沒有任何意義。
例如:
1.
SELECT UTC_TIMESTAMP(), UTC_TIMESTAMP() - INTERVAL 1 HOUR
輸出
2014-07-06 19:19:13 | 2014-07-06 18:19:13
這些
SELECT UTC_TIMESTAMP() - DATE_SUB(UTC_TIMESTAMP(), INTERVAL 1 HOUR)
SELECT UTC_TIMESTAMP() - (UTC_TIMESTAMP() - INTERVAL 1 HOUR)
兩個輸出10000
。這個數字沒有任何意義,我,但後來它得到,因爲這更令人困惑:
SELECT UTC_TIMESTAMP()-DATE_SUB(UTC_TIMESTAMP(), INTERVAL 1 SECOND)
輸出1
。這是爲什麼?這個數字代表什麼?
2.
The manual page for date and time functions節目DATE_ADD()
和DATE_SUB()
可以用來添加和日期減去的間隔,但我沒有看到手冊中對應的任何功能的偉大和小於運營商,那麼如何檢查當前日期是否大於其他日期呢?
我嘗試使用<
和>
運營商和他們似乎工作,但我似乎無法找到該手冊中關於這個事情,並希望使確保這是確定使用這些運營商是這樣的:
SELECT UTC_TIMESTAMP() > DATE_SUB(UTC_TIMESTAMP(), INTERVAL 1 HOUR)
誰能神祕性DATETIME
比較在MySQL?
謝謝,這清理了很多。所以在日期時間值上使用'+'和'-'不會產生理想的結果,但是比較大於/小於比較呢?正在使用'<' and '>'來檢查一個日期時間值是否大於/小於另一個? – Nate
@Nate是的,當然你可以用'>','<='和其他操作符進行比較。如果你不能這樣做,它會使你的數據過濾變得相當複雜。 'select * from cbhview where nowtime
cartbeforehorse
@Nate我剛剛看到你正在嘗試做什麼。是的,你也可以在邏輯比較器中加入'select'語句,但是這不會被過濾(就像在聲明的where部分那樣)。再次,小心你知道你想要什麼。在'select'語句中,邏輯比較器給你一個'真/假'(實際上是'1/0')響應。 '從cbhview選擇nowtime
cartbeforehorse