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

MariaDBでのMICROSECOND()の動作

    MariaDBでは、MICROSECOND() は、指定された時間式のマイクロ秒部分を返す組み込みの日付と時刻の関数です。

    マイクロ秒を抽出する時間である1つの引数を受け入れます。

    秒は、0の範囲の数値として返されます 999999へ 。

    構文

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

    MICROSECOND(time)

    time マイクロ秒を取得する時間式です。

    次に例を示します:

    SELECT MICROSECOND('10:30:45.123456');

    結果:

    +--------------------------------+
    | MICROSECOND('10:30:45.123456') |
    +--------------------------------+
    |                         123456 |
    +--------------------------------+

    次の時間式には、マイクロ秒が明示的に含まれていません。

    SELECT MICROSECOND('10:30:45');

    結果:

    +-------------------------+
    | MICROSECOND('10:30:45') |
    +-------------------------+
    |                       0 |
    +-------------------------+

    したがって、結果は0になります。 。

    日時の値

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

    SELECT MICROSECOND('2030-02-01 10:30:45.123456');

    結果:

    +-------------------------------------------+
    | MICROSECOND('2030-02-01 10:30:45.123456') |
    +-------------------------------------------+
    |                                    123456 |
    +-------------------------------------------+
    >

    日付値

    時刻なしで日付を渡すと、0が返されます 、警告とともに。

    例:

    SELECT MICROSECOND('2025-10-31');

    結果:

    +---------------------------+
    | MICROSECOND('2025-10-31') |
    +---------------------------+
    |                         0 |
    +---------------------------+
    1 row in set, 1 warning (0.001 sec)

    次のコードを実行すると、警告を確認できます。

    SHOW WARNINGS;

    結果:

    +---------+------+----------------------------------------------+
    | Level   | Code | Message                                      |
    +---------+------+----------------------------------------------+
    | Warning | 1292 | Truncated incorrect time value: '2025-10-31' |
    +---------+------+----------------------------------------------+

    現在の日付

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

    SELECT 
        NOW(6),
        MICROSECOND(NOW(6));

    結果:

    +----------------------------+---------------------+
    | NOW(6)                     | MICROSECOND(NOW(6)) |
    +----------------------------+---------------------+
    | 2021-05-16 14:41:09.098168 |               98168 |
    +----------------------------+---------------------+

    この場合、NOW()を指定しました 6の分数精度を返す必要があります (マイクロ秒を返します。)

    ここでも精度は低くなっています:

    SELECT 
        NOW(3),
        MICROSECOND(NOW(3));

    結果:

    +-------------------------+---------------------+
    | NOW(3)                  | MICROSECOND(NOW(3)) |
    +-------------------------+---------------------+
    | 2021-05-16 14:42:35.831 |              831000 |
    +-------------------------+---------------------+

    無効な引数

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

    SELECT MICROSECOND('10:75:00.123456');

    結果:

    +--------------------------------+
    | MICROSECOND('10:75:00.123456') |
    +--------------------------------+
    |                           NULL |
    +--------------------------------+

    引数がありません

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

    SELECT MICROSECOND();

    結果:

    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 MICROSECOND('10:30:45.123', '06:30:45.123');

    結果:

    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.123')' at line 1

    1. ETLプロセスでのPythonとMySQLの使用:SQLAlchemy

    2. SQL Server FOR JSON PATHの例(T-SQL)

    3. SQLiteINTERSECTオペレーター

    4. プロファイルからデータベースメールアカウントを削除する(SSMS)