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

MariaDBでのUNIX_TIMESTAMP()のしくみ

    MariaDBでは、UNIX_TIMESTAMP() は、引数(または引数の欠如)に基づいてUnixタイムスタンプを返す組み込みの日付と時刻の関数です。

    これは次のように機能します:

    • 呼び出されたときなし 引数の場合、Unixタイムスタンプ(「1970-01-01 00:00:00」UTCからの秒数)を符号なし整数として返します。
    • withと呼ばれる場合 引数の場合、引数の値を「1970-01-0100:00:00」UTCからの秒数で返します。

    UNIX_TIMESTAMP()の逆関数 FROM_UNIXTIME()です 。

    構文

    UNIX_TIMESTAMP() 次の2つの方法で呼び出すことができます:

    UNIX_TIMESTAMP()
    UNIX_TIMESTAMP(date)

    date は、日付文字列、日時文字列、タイムスタンプ、またはYYMMDDの形式の数値です。 またはYYYYMMDD

    例–引数なし

    UNIX_TIMESTAMP()を呼び出す例を次に示します。 引数なし:

    SELECT UNIX_TIMESTAMP();

    結果:

    +------------------+
    | UNIX_TIMESTAMP() |
    +------------------+
    |       1622502492 |
    +------------------+

    これは、そのステートメントを実行したときに、1970-01-0100:00:00から1622502492秒が経過したことを示しています。

    例–引数付き

    引数付きの例を次に示します。

    SELECT UNIX_TIMESTAMP('1970-01-02');

    結果:

    +------------------------------+
    | UNIX_TIMESTAMP('1970-01-02') |
    +------------------------------+
    |                        50400 |
    +------------------------------+

    次の例では、UNIX_TIMESTAMP()を呼び出します。 2回; 1回は引数なし、もう1回はNOW() 引数として。

    SELECT 
        UNIX_TIMESTAMP(),
        UNIX_TIMESTAMP(NOW());

    結果:

    +------------------+-----------------------+
    | UNIX_TIMESTAMP() | UNIX_TIMESTAMP(NOW()) |
    +------------------+-----------------------+
    |       1622502678 |            1622502678 |
    +------------------+-----------------------+

    日時文字列

    上記の例では、NOW() 日時の値を返します。

    この例では、日時文字列を明示的に指定します:

    SELECT UNIX_TIMESTAMP('2020-10-30 10:23:47');

    結果:

    +---------------------------------------+
    | UNIX_TIMESTAMP('2020-10-30 10:23:47') |
    +---------------------------------------+
    |                            1604017427 |
    +---------------------------------------+

    マイクロ秒

    UNIX_TIMESTAMP() マイクロ秒をサポート:

    SELECT UNIX_TIMESTAMP('2020-10-30 10:23:47.123456');

    結果:

    +----------------------------------------------+
    | UNIX_TIMESTAMP('2020-10-30 10:23:47.123456') |
    +----------------------------------------------+
    |                            1604017427.123456 |
    +----------------------------------------------+

    数値日付

    数値の日付がサポートされています:

    SELECT UNIX_TIMESTAMP(20201030);

    結果:

    +--------------------------+
    | UNIX_TIMESTAMP(20201030) |
    +--------------------------+
    |               1603980000 |
    +--------------------------+

    無効な引数

    無効な引数が渡された場合、UNIX_TIMESTAMP() nullを返します 警告付き:

    SELECT UNIX_TIMESTAMP('Homer');

    結果:

    +-------------------------+
    | UNIX_TIMESTAMP('Homer') |
    +-------------------------+
    |                    NULL |
    +-------------------------+
    1 row in set, 1 warning (0.001 sec)

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

    SHOW WARNINGS;

    結果:

    +---------+------+-------------------------------+
    | Level   | Code | Message                       |
    +---------+------+-------------------------------+
    | Warning | 1292 | Incorrect time value: 'Homer' |
    +---------+------+-------------------------------+

    引数が多すぎます

    UNIX_TIMESTAMP()の呼び出し 引数が多すぎるとエラーになります:

    SELECT UNIX_TIMESTAMP('1970-01-02', '1970-01-03');

    結果:

    ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UNIX_TIMESTAMP'

    1. SQLでREPLACEを使用する方法

    2. Firebaseの概要

    3. トップ一般的なMySQLクエリ

    4. PostgreSQL用のAmazonRDSおよびAuroraオファリングの概要