2013-12-18 241 views
-1

我试图创建一个查询,它只会显示发布日期下方的“文章”。比如我可能有它有明天下午的发布日期的文章,这是我做了,但似乎并没有正常工作查询:SQL查询问题(日期比较)

SELECT a.id, CASE WHEN a.created_by_alias > ' ' THEN a.created_by_alias ELSE ua.name  END AS author 
FROM #__content AS a 
LEFT JOIN #__users AS ua ON ua.id = a.created_by 
LEFT JOIN #__categories AS c ON c.id = a.catid 
WHERE a.state='1' 
AND c.id!=1618 
AND a.publish_up >= NOW() 
AND a.title LIKE '%Europa no es una broma%' 

的publish_up日期返回此:2013-12- 19 20:55:00和今天的日期,这将是现在()返回相同的方式:2013-12-18 09:31:30(两种相同的格式)。

我想要的只是那些低于今天日期的文章。

在此先感谢您的帮助!

+2

什么是列类型'publish_up'?我也不清楚你的意思是“在发布日期之下”......你想从查询中获得已发布或尚未发布的文章吗? –

+0

这不是一个好问题,因为它没有描述确切的问题。表结构,示例数据,基于该数据的预期结果,当前结果,错误消息(如果有的话)... – GolezTrol

+0

对不完整的信息,我编辑了这个问题,希望能更好地解决这个问题。 – MONZTAAA

回答

1

试试这个

SELECT a.id, CASE WHEN a.created_by_alias > ' ' THEN a.created_by_alias ELSE ua.name  END AS author 
FROM #__content AS a 
LEFT JOIN #__users AS ua ON ua.id = a.created_by 
LEFT JOIN #__categories AS c ON c.id = a.catid 
WHERE a.state='1' 
AND c.id!=1618 
AND DATE(a.publish_up) < Date(NOW()) 
AND a.title LIKE '%Europa no es una broma%' 

制作使用日期()函数的值返回日期yyyy-mm-dd