MySQL - 选择上传日期在01-01-2017和31-12-2017之间的文章

时间:2017-11-01 12:12:26

标签: mysql sql date

需要在几年的时间里在我的新闻稿页面上拆分文章。所以2017年,2018年,2019年等。我只是忘了如何使用查询正确地执行此操作。任何建议都非常感谢!

我尝试过(我还尝试使用' AS newName'并让WHERE检查newDate。):

SELECT *, DATE(`article_upload_date`, 'dd-mm-yyyy')
FROM articles
WHERE article_id = 1 AND
      DATE(article_upload_date) BETWEEN DATE('01-01-2017') AND DATE('31-12-2017')

SELECT *, DATE(`article_upload_date`, 'd-m-Y')
FROM articles
WHERE article_id = 1 AND
      DATE(article_upload_date) BETWEEN DATE('01-01-2017') AND DATE('31-12-2017')

1 个答案:

答案 0 :(得分:0)

使用日期的标准格式。在MySQL中,这看起来像:

SELECT a.*, DATE_FORMAT(`article_upload_date`, '%d-%m-%Y')
FROM articles a
WHERE article_id = 1 AND
      DATE(article_upload_date) BETWEEN '2017-01-01' AND '2017-12-31';

请注意DATE_FORMAT()的使用。

编写WHERE子句的更好方法是:

WHERE article_id = 1 AND
      article_upload_date >= '2017-01-01' AND
      article_upload_date < '2018-01-01'

不需要使用函数 - 并且使用函数通常会阻止使用索引,从而影响性能。