2017-11-01 5 views
1

私のプレスリリースページの記事を年単位で分割する必要があります。 2017年、2018年、2019年など。私はちょうどクエリでこれを徹底的に行う方法を忘れていました。どんなアドバイスも大歓迎です!MySQL - アップロード日付が01-01-2017と31-12-2017の間の記事を選択する

私は(私も 'NEWNAME AS' で試してみました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') 

答えて

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' 

あり機能を使用する必要はありません - と機能を使用すると、多くの場合、パフォーマンスに影響を与え、索引の使用を防止します。

+0

これはうまくいきましたが、なぜ記事aを使用しますか?私は複数のテーブルを使用しません。 –

+0

@ScottvanDuin。 。 。私の習慣は、一般的にすべてのテーブルのテーブルエイリアスを書くことです。 –

+1

私はそれがほとんど害を及ぼさないと思うし、あなたがそれらを必要とするときに便利です。 –

関連する問題