【问题标题】:MySQL select Current_timestamp betweenMySQL 选择 Current_timestamp 之间
【发布时间】:2013-10-14 13:42:52
【问题描述】:

我在 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 |
+----+-----------+---------------------+

【问题讨论】:

  • 试试WHERE DATE(subscribe_date) BETWEEN

标签: mysql sql timestamp


【解决方案1】:

由于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,所以月份是第二个月)

【讨论】:

  • 我试过了,但没有给我任何数据:MySQL返回了一个空的结果集(即零行)。 (查询耗时 0.0008 秒)
  • 那么显然你没有满足你条件的记录
  • 即使我从 2013-10-01 到 2013-10-14 选择更大的范围,它也不会做任何事情,因为有足够的记录来满足条件我认为不是那个查询没有记录。
  • 我刚刚在帖子中添加了一些信息,希望对您也有帮助
  • 检查您的列中是否有一些值。
猜你喜欢
  • 2011-05-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多