MySQL“不到”不能正常工作

时间:2012-02-15 19:56:35

标签: php mysql datetime datetime-format

我有这个查询

SELECT * 
FROM  `t_activities` 
WHERE  `uid` =2
AND  `del` =0
AND UNIX_TIMESTAMP(  `time` ) < 1327518485
ORDER BY  `id` DESC 
LIMIT 4

下面的图片是返回的内容。 enter image description here

时间1327518485实际上是使用php '2012-01-25 20:08:05'从日期时间字符串strtotime('2012-01-25 20:08:05')转换的。

通过查询,我希望加载在'2012-01-25 20:08:05'1327518485之前插入的文件;但结果仍然在其后插入文件。

我在查询中处理条件的方式有问题吗?

2 个答案:

答案 0 :(得分:3)

您无需进行时间戳转换。你可以这样做:

`time` < '2012-01-25 20:08:05'

时间戳可能会出现时区问题。

答案 1 :(得分:1)

为了

UNIX_TIMESTAMP(`time`) < 1327518485

要正常工作,'time'必须是timestamp类型的列。如果“时间”为datedatetime列,则UNIX_TIMESTAMP()会导致时区转换。

将值作为timestamp插入“时间”列时,请使用UNIX_TIMESTAMP()代替NOW()来存储与当前时区无关的当前时间值。