查询 1
SELECT SessionInfo.IVRSessionInfoID
FROM SessionInfo
WHERE SessionCallTime BETWEEN UNIX_TIMESTAMP('2013-08-01 00:00:00')
AND UNIX_TIMESTAMP('2013-08-01 23:59:59')
ORDER BY SessionInfo.SessionCallTime DESC;
Run Code Online (Sandbox Code Playgroud)
查询 2
SELECT SessionInfo.IVRSessionInfoID
FROM SessionInfo
WHERE ( SessionInfo.SessionCallTime BETWEEN '2013-08-01 00:00:00'
AND '2013-08-01 23:59:59' )
ORDER BY SessionInfo.SessionCallTime DESC;
Run Code Online (Sandbox Code Playgroud)
有什么不同?为什么第一个查询给出 0 行而第二个给出记录?
在此表中,这两个日期之间有 20000 行。
小智 5
我猜:
来自:http : //dev.mysql.com/doc/refman/5.6/en/date-and-time-functions.html#function_unix-timestamp
UNIX_TIMESTAMP(), UNIX_TIMESTAMP(日期)
如果不带参数调用,则返回 Unix 时间戳(自 '1970-01-01 00:00:00' UTC 以来的秒数)作为无符号整数。如果使用日期参数调用 UNIX_TIMESTAMP(),它将返回参数值作为自 '1970-01-01 00:00:00' UTC 以来的秒数
在第一个查询中,您将日期与秒数 2013-08-01 00:00:00 和 2013-08-01 23:59:00 是在 1970-01-01 之后,这意味着您正在比较你的日期到秒。
在第二个查询中,您实际上是在将日期与其他日期进行比较。
归档时间: |
|
查看次数: |
1034 次 |
最近记录: |