2

我将如何编写 SQLite 查询来选择特定月份的所有记录?我的日期存储为Unix 时间戳

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

4

3 回答 3

4

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

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

月初和月底的 unix 时间戳start在哪里?end这些可以在 PHP 中使用mktime计算并作为参数发送。

于 2010-03-20T23:40:46.673 回答
1

采用:

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

将 替换为YYYY-MM-DD您想要的日期。有关其他支持的格式,请参阅参考页。

参考:

于 2010-03-20T23:41:31.717 回答
1

不计算一个月的最后一天

SELECT * 
  FROM table 
 WHERE strftime('%Y-%m',date(unix_timestamp,'unixepoch','localtime')) = '2010-03'
于 2010-03-20T23:51:36.943 回答