比较mysql中的数字和时间戳会产生意外结果

时间:2017-08-30 08:43:41

标签: mysql

SELECT 20170930 < TIMESTAMP(20170831);
# 1
SELECT 20170930 > TIMESTAMP(20170831);
# 0
SELECT '20170930' < TIMESTAMP(20170831);
# 0
SELECT '20170930' > TIMESTAMP(20170831);
# 1

文档:

  

如果其中一个参数是TIMESTAMP或DATETIME列,那么   其他参数是常量,常量转换为时间戳   在进行比较之前。这样做更多   ODBC友好。这不是针对IN()的参数。为了安全起见   这样做时总是使用完整的日期时间,日期或时间字符串   比较。例如,在使用BETWEEN时获得最佳效果   使用日期或时间值,使用CAST()显式转换值   到所需的数据类型。

看起来MySQL在比较之前没有将Number转换为Timestamp。我误解了吗?

0 个答案:

没有答案