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结果。
我不知道数据库查询,这就是为什么我要将它发布到这里以获得数据库专家的帮助。
答案 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
是表名...
别忘了把日期写成单引号