如何使用日期字段作为unix时间戳在mysql中选择句点?

时间:2010-10-08 23:54:22

标签: php mysql unix-timestamp

我有一个带有字段的表,我将日期存储在unix时间戳中,例如1286515961。

需要,选择当月的记录,例如“2010年10月”。

我想直接在mysql查询中选择记录,以获得速度,但是使用unix时间戳。

任何人都可以帮助我吗?谢谢你

2 个答案:

答案 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')

(未测试的)