我有一个带有字段的表,我将日期存储在unix时间戳中,例如1286515961。
需要,选择当月的记录,例如“2010年10月”。
我想直接在mysql查询中选择记录,以获得速度,但是使用unix时间戳。
任何人都可以帮助我吗?谢谢你
答案 0 :(得分:0)
最简单的方法是使用FROM_UNIXTIME:
SELECT *
FROM table
WHERE FROM_UNIXTIME(date) >= '2010-10-01'
AND FROM_UNIXTIME(date) < '2010-11-01'
答案 1 :(得分:0)
Alec的回答很好
这将是:
SELECT * FROM table WHERE FROM_UNIXTIME(date) >= '2010-10-01' AND FROM_UNIXTIME(date) < '2010-11-01'
但实际上它反过来更快。将你的边界转换为unix时间戳,然后进行比较。因此,不需要对表中的每一行进行转换,只需要对边界进行转换,然后可以在内部比较整数,这比转换为datetime对象快得多......就像这样...
SELECT * FROM table
WHERE date >= UNIX_TIMESTAMP('2010-10-01')
AND date < UNIX_TIMESTAMP('2010-11-01')
(未测试的)