有一个我正在研究的查询
... WHERE start_date >= DATE(NOW()) AND end_date >= DATE(NOW())
start_date / end_date采用日期格式:yyyy-mm-dd
从这种查询中可以期待什么样的结果?
答案 0 :(得分:1)
从这种查询中可以期待什么样的结果?
如果start_date
和end_date
是正确的mySQL DATE字段,它应该可以正常工作并返回所有条目,其中start_date和end_date是今天的日期,或者是将来的日期。
如果它们是varchar字段,您可能需要考虑将列转换为DATE字段 - 我假设值将保留但当然要备份 - 或者将它们作为DATE字段转换(慢!):
WHERE CONVERT(start_date, DATE) => DATE(NOW()) AND CONVERT(end_date, DATE) => DATE(NOW())
答案 1 :(得分:1)
start_date和end_date都大于或等于今天的日期。
您可以使用DATE(now())
。
CURRENT_DATE()
答案 2 :(得分:0)
您将比较日期(即未考虑的时间)粒度级别的日期。即假日start_date和end_date是日期列的那一天,即当天或晚于今天(NOW())的所有行。
答案 3 :(得分:0)
这应该可以正常工作,因为你可以在日期比较中使用NOW()。
但是,您不需要在DATE内包装NOW() - 只要您使用其中一个与时间相关的(DATE,DATETIME,TIMESTAMP等)字段类型,它就会按原样运行。
因此,您应该只能使用......
WHERE start_date >= NOW() AND end_date >= NOW()
答案 4 :(得分:0)
如果您使用单引号包围start_date
和end_date
,那就行了。它将为您提供开始日期和结束日期的所有记录。