编辑现有查询以搜索时间是否在开始日期和结束日期之间

时间:2012-07-25 01:36:25

标签: php mysql sql date

通过表单,用户选择日期+时间,然后当他提交时,代码运行此查询

ABS(TIMESTAMPDIFF( HOUR , `start`, :time )) < 2

查找start与所选日期之间差异小于2的所有行。

但是,我现在添加了一个新字段end,其中包含事件的结束日期+时间。

我的问题是如何编辑现有查询以返回所选日期介于startend之间的所有行?

这是选择开始结束日期+时间的格式:2012-07-25 04:30

1 个答案:

答案 0 :(得分:1)

使用BETWEEN

WHERE selected_date BETWEEN start AND end

引用有关使用BETWEEN日期的手册:

  

为了将BETWEEN与日期或时间值一起使用时获得最佳结果,请使用CAST()将值显式转换为所需的数据类型。示例:如果将DATETIME与两个DATE值进行比较,请将DATE值转换为DATETIME值。如果在与DATE的比较中使用字符串常量(如“2001-1-1”),则将字符串强制转换为DATE。