检查输入的日期时间是不是在 2 个日期时间值的范围内

Posted

技术标签:

【中文标题】检查输入的日期时间是不是在 2 个日期时间值的范围内【英文标题】:check whether entered date time is between the range of 2 datetime values检查输入的日期时间是否在 2 个日期时间值的范围内 【发布时间】:2013-03-05 15:21:11 【问题描述】:

我有一个包含 2 列 startdate 和 enddate 的表格,用于存储特定场所中有趣节目的开始和结束时间。(两列的格式为 datetime-format 为 'Y-m-d H:i:s')。当用户创建a program within this time limitthe end time of the program lies within the time limit but not the start timethe start time lies within the time limit but not the end time,程序不应插入显示警报的表中。我已经编写了这样的查询。但它不能正常工作。

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'))    

提前致谢。

【问题讨论】:

> 和 @DiMono Hav 使用了它。但在某些情况下它不能完美地工作 这不取决于列是什么数据类型吗?如果它是 varchar 仍然无法工作,会吗?如果您将列设置为 DATETIME,它将起作用。 什么情况下不起作用?是忽略小时和分钟还是什么? @Keeleon 如果开始时间早于数据库中的开始时间或结束时间大于数据库中的结束日期。如果开始日期和结束日期在限制范围内,则可以正常工作跨度> 【参考方案1】:

试试这个:

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'

【讨论】:

【参考方案2】:

您只需要测试输入的 startdate 是否在 start 和 enddate 之间,或者 entererd enddate 是否在 start 和 enddate 之间

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)

【讨论】:

以上是关于检查输入的日期时间是不是在 2 个日期时间值的范围内的主要内容,如果未能解决你的问题,请参考以下文章

Java:检查当前日期是不是在特定日期范围内[重复]

MySQL 检查日期范围是不是在日期范围内

检查日期是不是对选定的月份有效 Django 表单

日期时间日历:在单个输入字段中选择日期范围

如何检查日期范围选择器中的日期是不是更改?

自定义验证规则,检查日期范围是不是已经被占用