sql >> データベース >  >> RDS >> Mysql

MySQLで日付から年と月を取得する方法

    問題:

    MySQLデータベースの特定の日付から年と月を取得したい。

    例:

    私たちのデータベースには、 datesという名前のテーブルがあります id列にデータがあります およびdate

    id 日付
    1 2008-04-21
    2 1987-12-14

    yearを抽出してみましょう およびmonth 日付から。

    ソリューション1:

    SELECT
    EXTRACT(YEAR FROM date) AS year,
    EXTRACT(MONTH FROM date) AS month
    FROM dates;
    

    結果は次のとおりです。

    year
    2008 4
    1987 12

    ディスカッション:

    年と月の列を取得するには、 EXTRACT(part FROM date)を使用します 働き。このソリューションでは、part引数は YEARに置き換えられます およびMONTH yearを取得するには およびmonth 個別に、それぞれ独自の列にあります。

    EXTRACT()について詳しく知ることができます MySQLの公式ドキュメントにあります。

    ソリューション2:

    SELECT
    EXTRACT(YEAR_MONTH FROM date) AS year_and_month
    FROM dates;
    

    結果は次のとおりです。

    year_and_month
    200804
    198712

    ディスカッション:

    このソリューションは前のソリューションとまったく同じように機能しますが、 YEAR_MONTH 年と月を別々に取得するのではなく、1つの列にまとめるために使用されます。年と月の値が互いに分離されていないことに注意してください。

    ソリューション3:

    SELECT
    YEAR(date) AS year,
    MONTH(date) AS month
    FROM dates;
    

    結果は次のとおりです。

    year
    2008 4
    1987 12

    ディスカッション:

    今回は、 YEAR() およびMONTH() 関数は、2つの列を作成するために使用されます。 YEAR() 年とMONTH()を返します 月を数値として返します。

    ソリューション4:

    SELECT
    YEAR(date) AS year,
    MONTHNAME(date) AS month
    FROM dates;
    

    結果は次のとおりです。

    year
    2008 4月
    1987 12月

    ディスカッション:

    月の名前を取得するには、 MONTHNAME()を使用します 働き。結果には、月番号の代わりに月名が表示されます。

    ソリューション5:

    SELECT
    DATE_FORMAT(date, '%Y-%m') AS year_and_month
    FROM dates;
    

    結果は次のとおりです。

    year_and_month
    2008-04
    1987-12

    ディスカッション:

    DATE_FORMAT()を使用します dateを表示する関数 特定の形式の値。 dateが必要です 最初の引数として、2番目の引数として目的の日付形式を説明する文字列。この場合、文字列'%Y-%m '、%Y 年を返します、 - 区切り文字として使用され、%m 月を数値で返します(%M に置き換えることができます) 月の名前を取得します。

    DATE_FORMAT()について詳しく知ることができます MySQLの公式ドキュメントにあります。


    1. SQLServerでGOTOを使用する方法

    2. MySQLは、group by句の一部ではない列を選択できるようにすることで標準を破っていますか?

    3. MariaDBでのREVERSE()のしくみ

    4. c3p0ステートメントプーリングをアクティブ化する必要がありますか?