我有一个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字段中它应该以某种方式出现
这样做的最佳方式是什么?
也许很高兴知道我的'subscribe_date'列有'timestamp'类型,并自动填充'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 |
+----+-----------+---------------------+
答案 0 :(得分:2)
由于TIMESTAMP通常达到秒精度,因此您必须添加时间部分:
SELECT *
FROM users
WHERE (subscribe_date BETWEEN '2013-10-07 00:00:00' AND '2013-12-10 23:59:59')
我已将'2013-13-10'
修改为'2013-12-10 23:59:59'
,因为没有第13个月(并且DATETIME
格式为YYYY-MM-DD
,所以月份排在第二位)