我已经阅读了几个类似的问题,然后我可以找到几乎与我正在使用的相同的查询。但是,我不得不问,因为我想知道这是为什么不工作:MySQL,在开始和结束日期列之间获取数据?
,我有以下数据:
id category_id start_date end_date image campaign_id published
1 1 2011-07-05 2011-07-5 a.gif 3 1
2 1 2011-07-01 2011-07-15 c.gif 3 1
3 37 2011-07-01 2011-07-04 d.gif 3 1
我期望能获得行1和2,从该查询:
SELECT id, category_id, start_date, end_date FROM categories_campaigns WHERE start_date <= NOW() AND end_date >= NOW();
从我所经历的情况来看,唯一返回的行是第二行。而且这一次,给了我第二次,
SELECT category_id, start_date, end_date FROM categories_campaigns WHERE end_date >= NOW();
下一个返回我的所有3,
SELECT category_id, start_date, end_date FROM categories_campaigns WHERE start_date <= NOW();
的数据类型为列的日期。所以,我的问题是,如何解决这个问题?这是为什么发生?或者我有一个明显的错误,我没有找到要寻找的东西。
非常感谢您寻找任何形式的帮助表示感谢!
--------------编辑:求助!
太棒了!我找到了一个解决方案,
SELECT category_id, start_date, end_date FROM categories_campaigns WHERE start_date <= DATE(NOW()) and end_date >= DATE(NOW());
按预期返回我的前2行!是啊! ; d
如果解决后的溶液,作为自己的答案,并接受 –
什么是从输出'SELECT NOW()'?世界协调时间是UTC时间吗? – Bohemian
@Shakti Singh,好的,我会这么做的。 Tks – punkbit