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

MariaDBでのYEAR()のしくみ

    MariaDBでは、YEAR() は、指定された日付式から年を返す組み込みの日付と時刻の関数です。

    1つの引数を受け入れます。これは、年を抽出する日付です。

    1000の範囲の数値として年を返します 9999へ 。日付がゼロの場合(例:0000-00-00 )、結果は0です。 。

    構文

    構文は次のようになります:

    YEAR(date)

    date 年を取得する日付式です。

    次に例を示します:

    SELECT YEAR('2030-08-01');

    結果:

    +--------------------+
    | YEAR('2030-08-01') |
    +--------------------+
    |               2030 |
    +--------------------+

    日時の値

    日時の値でも機能します:

    SELECT YEAR('2030-08-01 10:30:45');

    結果:

    +-----------------------------+
    | YEAR('2030-08-01 10:30:45') |
    +-----------------------------+
    |                        2030 |
    +-----------------------------+

    ゼロ日付

    日付がゼロの場合、0になります 。

    例:

    SELECT YEAR('0000-00-00');

    結果:

    +--------------------+
    | YEAR('0000-00-00') |
    +--------------------+
    |                  0 |
    +--------------------+

    数値日付

    日付として意味がある限り、日付を数値として渡すこともできます。

    SELECT YEAR(20301125);

    結果:

    +----------------+
    | YEAR(20301125) |
    +----------------+
    |           2030 |
    +----------------+

    または、次の場合でも(2桁の年を使用):

    SELECT YEAR(301125);

    結果:

    +--------------+
    | YEAR(301125) |
    +--------------+
    |         2030 |
    +--------------+

    しかし、それは日付として意味をなさなければなりません。日の部分を無効な日に増やすと、次のようになります。

    SELECT YEAR(20301135);

    結果:

    +----------------+
    | YEAR(20301135) |
    +----------------+
    |           NULL |
    +----------------+
    1 row in set, 1 warning (0.000 sec)

    警告は次のように確認できます:

    SHOW WARNINGS;

    結果:

    +---------+------+--------------------------------------+
    | Level   | Code | Message                              |
    +---------+------+--------------------------------------+
    | Warning | 1292 | Incorrect datetime value: '20301135' |
    +---------+------+--------------------------------------+

    その他の区切り文字

    日付には他の区切り文字を使用できます。 MariaDBは、日付の区切り文字に関しては非常に寛容です。いくつかの有効な例を次に示します。

    SELECT 
        YEAR('2030/06/25'),
        YEAR('2030,06,25'),
        YEAR('2030:06:25'),
        YEAR('2030;06!25');

    結果(垂直出力を使用):

    YEAR('2030/06/25'): 2030
    YEAR('2030,06,25'): 2030
    YEAR('2030:06:25'): 2030
    YEAR('2030;06!25'): 2030

    現在の日付

    NOW()を渡すことができます 現在の日付を使用する日時引数として:

    SELECT 
        NOW(),
        YEAR(NOW());

    結果:

    +---------------------+-------------+
    | NOW()               | YEAR(NOW()) |
    +---------------------+-------------+
    | 2021-05-18 08:55:02 |        2021 |
    +---------------------+-------------+

    無効な引数

    無効な引数が渡されると、YEAR() nullを返します :

    SELECT YEAR('2030-65-78');

    結果:

    +--------------------+
    | YEAR('2030-65-78') |
    +--------------------+
    |               NULL |
    +--------------------+
    1 row in set, 1 warning (0.001 sec)

    警告を確認してください:

    SHOW WARNINGS;

    結果:

    +---------+------+----------------------------------------+
    | Level   | Code | Message                                |
    +---------+------+----------------------------------------+
    | Warning | 1292 | Incorrect datetime value: '2030-65-78' |
    +---------+------+----------------------------------------+

    引数がありません

    YEAR()を呼び出す 引数の数が間違っているか、引数を渡さないと、エラーが発生します:

    SELECT YEAR();

    結果:

    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1

    そして別の例:

    SELECT YEAR('2030-12-10', '2031-12-10');

    結果:

    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ' '2031-12-10')' at line 1

    1. データベース設計は、教師、レッスン、および学生の編成にどのように役立ちますか?

    2. ニージャーク待機統計:PAGEIOLATCH_SH

    3. 更新部分で新しい値と古い値の両方を使用できるようにUPSERTを実行する方法

    4. MariaDBでのSHOWCHARACTERSETのしくみ