web-dev-qa-db-ja.com

MySQLの日付で月と年を抽出して比較するにはどうすればよいですか?

MySQL日付から月と日付を抽出し、別の日付と比較するにはどうすればよいですか?

このMONTH()を見つけましたが、月しか取得できません。月と年を探しています。

27
JohnSmith

mysql Dokuの場合: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_extract

SELECT EXTRACT( YEAR_MONTH FROM `date` ) 
FROM `Table` WHERE Condition = 'Condition';
61
betasux

日付を比較する場合は、比較のために完全な日付を抽出します。年と月のみを比較する場合は、

SELECT YEAR(date) AS 'year', MONTH(date) AS 'month'
 FROM Table Where Condition = 'Condition';
30

コメントで議論されましたが、まだそれを含む答えはありませんので、見逃しがちです。 DATE_FORMATは非常にうまく機能し、さまざまなパターンを柔軟に処理できます。

DATE_FORMAT(date,'%Y%m')

クエリに含めるには:

SELECT DATE_FORMAT(test_date,'%Y%m') AS date FROM test_table;
19
SELECT * FROM Table_name Where Month(date)='10' && YEAR(date)='2016';
5
Waseem Ahmad

日付関数に関しては、mySQLのドキュメントをご覧ください。 http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html

MONTH()関数と同様に、YEAR()関数があります。あなたが比較をしている場合でも、日付を切り刻む理由はありますか?日ごとの違いを無視することに本当に興味がありますか?

1
Carth

YEAR()も必要です。

比較については、それらの年と月の最初の日である日付を比較するか、年/月のペアを比較に適した数値に変換することができます(つまり、大きい=遅い)。 (読者に残された練習問題。ヒントについては、ISO日付形式についてお読みください。)

または、複数の比較を使用することもできます(つまり、最初に年、次に月)。

1
aib