2013-03-05 69 views
0

我有一个表,其中包含2列startdate和enddate用于存储特定场所中有趣节目的开始和结束时间(两列的格式为datetime-格式为'Ymd H:i:s')。当用户创建a program within this time limitthe end time of the program lies within the time limit but not the start time或时,程序不应插入到显示警报的表中。我已经写过这样的查询,但它不能正常工作。检查输入的日期时间是否在2个日期时间值的范围之内

SELECT * FROM tbl_venue WHERE venue_id='id' AND 
((venue_start_datetime BETWEEN 'entered starttime' AND 'entered end time') 
AND (venue_stop_datetime BETWEEN 'entered starttime' AND 'entered end time'))  

在此先感谢。

+2

>和<业务合作在日期 – DiMono 2013-03-05 15:23:25

+0

@DiMono Hav使用that.but但在某些情况下它并不能完美工作 – Techy 2013-03-05 15:24:07

+0

难道这不取决于列的数据类型是什么?如果它的varchar不会起作用吗?如果你有你的列设置为DATETIME它将工作。 – Keeleon 2013-03-05 15:24:35

回答

0

试试这个:

SELECT * 
FROM tbl_venue 
WHERE venue_id='id' AND 
'entered starttime' >= venue_start_datetime 
AND 'entered end time' <= venue_stop_datetime 
AND 'entered starttime' <= 'entered end time' 
0

您JAST必须测试如果输入的开始日期为起始日期和结束日期或entererd结束日期之间是开始之间的日期和结束日期

SELECT * FROM tbl_venue WHERE venue_id='id' AND 
('entered starttime' BETWEEN venue_start_datetime AND venue_stop_datetime 
OR 'entered endtime' BETWEEN venue_start_datetime AND venue_stop_datetime) 
+0

这不是工作伙计 – Techy 2013-03-05 15:33:41

相关问题