查找正在进行的和即将发生的事件

时间:2014-12-01 09:36:30

标签: php mysql date

我编写了一个允许管理员添加bacthes的系统。 (基本细节+开始日期和结束日期)。日期格式为YYYY / MM / DD。键入:VARCHAR(50)。 Shoud我使用不同的类型(需要专家建议)

我需要列出即将进行的和正在进行的批次

这是我认为会返回正在进行的项目的查询

SELECT * FROM PROGRAMMES WHERE 'startdate' <= '$currentdate' AND 'enddate' > '$currentdate'

和即将开始的项目

`SELECT * FROM PROGRAMMES WHERE 'startdate' >= '$currentdate`'

但我不确定结果..因为值存储在VARCHAR中(它会获取我所需的结果)..我应该使用不同的数据类型作为日期..如果是这样,请指定

我无法理解PHP教程,因为它与众不同......有人可以用最常用的方法指导我。

谢谢

2 个答案:

答案 0 :(得分:2)

我使用的方法如下:

  • 始终使用DATETIME类型作为日期时间。
  • 始终以单个时区存储日期(如果项目需要在不同的TZ中显示日期,则UTC为基础)。

您可以使用运算符DATETIME>>=<<=来比较=列。 它非常易于使用,绝对比将日期存储为VARCHAR更好。

例如,你可以找到最后一天完成的事件:

... WHERE date_column < NOW() AND date_column > NOW() - INTERVAL 1 DAY

此外,这可能会对您有所帮助Best practice for storing the date in MySQL from PHP

答案 1 :(得分:0)

试试这个:

SELECT * FROM PROGRAMMES WHERE startdate <= $currentdate AND enddate > $currentdate