1

我在 MySQL 中有一个用户列表,并且在订阅时,时间戳是使用 CURRENT_TIMESTAMP 在数据库中设置的。

现在我想从这个表中进行选择,其中订阅日期在 X 天和 Y 天之间我尝试了几个查询,但不知何故它们都变成了空的。

这是我的最后一个版本

SELECT * 
FROM users 
WHERE subscribe_date BETWEEN '2013-10-07'AND '2013-13-10'

正如我确定的那样,这个日期:2013-10-08 14:38:49 在 subscribe_data 字段中 它应该以某种方式出现

做这个的最好方式是什么?

也许很高兴知道我的“订阅日期”列的类型为“时间戳”并且自动填充“CURRENT_TIMESTAMP”

这是此表中的数据:

+----+-----------+---------------------+
| id | firstname | subscribe_date      |
+----+-----------+---------------------+
| 20 | Peter     | 2013-10-01 14:37:17 |
| 21 | Jack      | 2013-10-08 14:38:49 |
| 22 | Andrew    | 2013-10-10 14:41:03 |
| 23 | Margret   | 2013-10-14 14:42:46 |
+----+-----------+---------------------+
4

1 回答 1

2

由于TIMESTAMP通常达到秒精度,因此您必须添加时间部分:

SELECT * 
FROM users 
WHERE (subscribe_date BETWEEN '2013-10-07 00:00:00' AND '2013-12-10 23:59:59')

由于没有第 13 个月,因此我已将您的固定'2013-13-10'为(格式为,因此月份排在第二位)'2013-12-10 23:59:59'DATETIMEYYYY-MM-DD

于 2013-10-14T13:46:05.607 回答