我有这个查询
SELECT *
FROM `t_activities`
WHERE `uid` =2
AND `del` =0
AND UNIX_TIMESTAMP( `time` ) < 1327518485
ORDER BY `id` DESC
LIMIT 4
下面的图片是返回的内容。
时间1327518485
实际上是使用php '2012-01-25 20:08:05'
从日期时间字符串strtotime('2012-01-25 20:08:05')
转换的。
通过查询,我希望加载在'2012-01-25 20:08:05'
或1327518485
之前插入的文件;但结果仍然在其后插入文件。
我在查询中处理条件的方式有问题吗?
答案 0 :(得分:3)
您无需进行时间戳转换。你可以这样做:
`time` < '2012-01-25 20:08:05'
时间戳可能会出现时区问题。
答案 1 :(得分:1)
为了
UNIX_TIMESTAMP(`time`) < 1327518485
要正常工作,'time'必须是timestamp
类型的列。如果“时间”为date
或datetime
列,则UNIX_TIMESTAMP()
会导致时区转换。
将值作为timestamp
插入“时间”列时,请使用UNIX_TIMESTAMP()
代替NOW()
来存储与当前时区无关的当前时间值。