我编写了一个允许管理员添加bacthes的系统。 (基本细节+开始日期和结束日期)。日期格式为YYYY / MM / DD。键入:VARCHAR(50)。 Shoud我使用不同的类型(需要专家建议)
我需要列出即将进行的和正在进行的批次
这是我认为会返回正在进行的项目的查询
SELECT * FROM PROGRAMMES WHERE 'startdate' <= '$currentdate' AND 'enddate' > '$currentdate'
和即将开始的项目
`SELECT * FROM PROGRAMMES WHERE 'startdate' >= '$currentdate`'
但我不确定结果..因为值存储在VARCHAR中(它会获取我所需的结果)..我应该使用不同的数据类型作为日期..如果是这样,请指定
我无法理解PHP教程,因为它与众不同......有人可以用最常用的方法指导我。
谢谢
答案 0 :(得分:2)
我使用的方法如下:
DATETIME
类型作为日期时间。您可以使用运算符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