2010-03-20 111 views
2

如何编写SQLite查询以选择特定月份的所有记录?我的日期存储为Unix时间戳使用SQLite从特定月份获取记录

如果需要,您的解决方案中允许使用PHP代码。请仅与SQLite2兼容的查询。 :)

回答

4

如果你想要一个高效的查询,那么你应该使用BETWEEN:

SELECT * 
FROM Table1 
WHERE date BETWEEN $start AND $end 

startend是UNIX时间戳月开始和月末。这些可以使用mktime以PHP计算并作为参数发送。

+0

那么计算最后一天,它不工作,但我要在这里责怪我的剧本,因为查询(和我的时间查找代码)似乎是正确的。 – soren121 2010-03-21 02:02:34

+0

这是我的剧本。修正了我的代码中的错误,它工作正常。谢谢! – soren121 2010-03-22 10:14:42

1

用途:

SELECT * 
    FROM TABLE 
WHERE DATETIME(your_unix_timestamp_col, 'unixepoch') BETWEEN YYYY-MM-DD 
                  AND YYYY-MM-DD 

更换YYYY-MM-DD与你的愿望的日期。有关其他支持的格式,请参阅参考页面。

参考:

1

没有在一个月

SELECT * 
    FROM table 
WHERE strftime('%Y-%m',date(unix_timestamp,'unixepoch','localtime')) = '2010-03' 
+0

我想选择特定的月份记录,这个脚本不适合我。 – 2014-06-13 05:40:56