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

MariaDBでのTIMESTAMP()のしくみ

    MariaDBでは、TIMESTAMP() は、引数に基づいて日時値を返す組み込みの日時関数です。

    次のように、1つまたは2つの引数で使用できます。

    • 1つの引数とともに使用すると、その日付または日時の式が日時の値として返されます。
    • 2つの引数とともに使用すると、2番目の(time)引数が最初の(dateまたはdatetime)式に追加され、結果のdatetime値が返されます。

    構文

    次の2つの方法で使用できます。

    TIMESTAMP(expr)
    TIMESTAMP(expr1,expr2)

    ここで、expr1 は日付または日時の式であり、expr2 expr1に追加する時間式です 。

    デモンストレーションの例を次に示します。

    SELECT TIMESTAMP('2030-02-01');

    結果:

    +-------------------------+
    | TIMESTAMP('2030-02-01') |
    +-------------------------+
    | 2030-02-01 00:00:00     |
    +-------------------------+

    日時の値

    日時の値を渡す例は次のとおりです。

    SELECT TIMESTAMP('2030-02-01 10:30:45');

    結果:

    +----------------------------------+
    | TIMESTAMP('2030-02-01 10:30:45') |
    +----------------------------------+
    | 2030-02-01 10:30:45              |
    +----------------------------------+
    >

    2番目の引数

    2番目の引数を最初の引数に追加する例を次に示します。

    SELECT TIMESTAMP('2030-02-01 10:30:45', '02:15:15');

    結果:

    +----------------------------------------------+
    | TIMESTAMP('2030-02-01 10:30:45', '02:15:15') |
    +----------------------------------------------+
    | 2030-02-01 12:46:00                          |
    +----------------------------------------------+

    マイクロ秒

    マイクロ秒を追加する例を次に示します。

    SELECT TIMESTAMP('2030-02-01 10:30:45', '00:00:00.123456');

    結果:

    +-----------------------------------------------------+
    | TIMESTAMP('2030-02-01 10:30:45', '00:00:00.123456') |
    +-----------------------------------------------------+
    | 2030-02-01 10:30:45.123456                          |
    +-----------------------------------------------------+

    ネガティブタイム

    負の時間は有効です:

    例:

    SELECT TIMESTAMP('2030-02-01 10:30:45', '-09:20:00');

    結果:

    +-----------------------------------------------+
    | TIMESTAMP('2030-02-01 10:30:45', '-09:20:00') |
    +-----------------------------------------------+
    | 2030-02-01 01:10:45                           |
    +-----------------------------------------------+

    現在の日付

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

    SELECT 
        NOW(),
        TIMESTAMP(NOW(), '10:30:45');

    結果:

    +---------------------+------------------------------+
    | NOW()               | TIMESTAMP(NOW(), '10:30:45') |
    +---------------------+------------------------------+
    | 2021-05-28 09:25:09 | 2021-05-28 19:55:54          |
    +---------------------+------------------------------+

    無効な引数

    無効な引数が渡されると、TIMESTAMP() nullを返します 警告付き:

    SELECT TIMESTAMP('Ten Thirty AM');

    結果:

    +----------------------------+
    | TIMESTAMP('Ten Thirty AM') |
    +----------------------------+
    | NULL                       |
    +----------------------------+
    1 row in set, 1 warning (0.004 sec)

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

    SHOW WARNINGS;

    結果:

    +---------+------+---------------------------------------+
    | Level   | Code | Message                               |
    +---------+------+---------------------------------------+
    | Warning | 1292 | Incorrect time value: 'Ten Thirty AM' |
    +---------+------+---------------------------------------+

    引数がありません

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

    SELECT TIMESTAMP();

    結果:

    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 TIMESTAMP('2020-12-09', '06:30:45', '06:30:45');

    結果:

    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 ' '06:30:45')' at line 1

    1. 行がまだ存在しない場合にのみ行を挿入します

    2. NVARCHAR(MAX)の最大文字数はいくつですか?

    3. MySQLストアドプロシージャ

    4. MySQL比較データベース