如何从MySQL中的日期和时间范围获取数据

时间:2014-09-11 03:42:02

标签: mysql date datetime between

MySQL表: -

ID    |    From_DateTime      |    To_DateTime

1          2014-09-01 10:00:00    2014-09-10 22:00:00

说明:

我在数据库表中为日期和时间范围添加了2列。上面显示的数据表示从2014年9月1日到10月10日是日期范围,10:00:00到22:00:00是时间范围。

积极情景 - 现在我在我的查询中传递了 2014-09-05 15:00:00 ,它进入了日期和时间两个范围。我需要的是查询中的ID。

负面情景 - 现在我在我的查询中传递 2014-09-05 23:00:00 进入日期范围但TIME不在指定的范围所以我应该得到0结果。

我不知道数据库查询,这就是为什么我要将它发布到这里以获得数据库专家的帮助。

2 个答案:

答案 0 :(得分:1)

这样的事情应该有效。可能需要一些调整。

SELECT ID FROM (
  SELECT ID FROM <tablename> 
    WHERE DATE('<dateTimeValue>') BETWEEN DATE(From_DateTime) AND DATE(To_DateTime) 
    AND TIME('<dateTimeValue>') BETWEEN TIME(From_DateTime) AND TIME(To_DateTime)
  UNION
    SELECT 0 AS ID FROM DUAL
) AS a LIMIT 1

答案 1 :(得分:0)

SELECT id FROM date_time WHERE From_DateTime&lt; &#39; 2014-09-05 15:00:00&#39; 和To_DateTime&gt; &#39; 2014-09-05 15:00:00&#39;;

此处date_time是表名... 别忘了把日期写成单引号