に最終更新
MICROSECOND
説明
MICROSECOND 関数は、入力した日時値からマイクロ秒部分(小数点以下最大六桁)を抽出し、0~999999 の値を返します。マイクロ秒精度の DATETIME 型に対応し、入力の精度が不足する場合は自動的にゼロで埋めます。
この関数は MySQL の microsecond 関数 と同じ動作をします。
構文
MICROSECOND(`<datetime>`)
パラメータ
| パラメータ | 説明 |
|---|---|
<datetime> | 入力する DATETIME 型の日時値。日時の形式については、日時の変換を参照してください。精度は 0 より大きい必要があります。 |
戻り値
日時値のマイクロ秒部分を INT 型で返します。値の範囲は 0~999999 です。入力の精度が 6 桁未満の場合、不足する桁をゼロで埋めます。
- 入力した日時値にマイクロ秒部分がない場合(例: '2023-01-01 10:00:00')、0 を返します。
- 入力が NULL の場合、NULL を返します。
- 入力した日時値のマイクロ秒精度が 6 桁未満の場合、不足する桁を自動的にゼロで埋めます(例: 12:34:56.123 は 123000 マイクロ秒として解析されます)。
例
-- Extracts a value with 6-digit microseconds
SELECT MICROSECOND(CAST('1999-01-02 10:11:12.000123' AS DATETIME(6)));
+----------------------------------------------------------------+
| MICROSECOND(CAST('1999-01-02 10:11:12.000123' AS DATETIME(6))) |
+----------------------------------------------------------------+
| 123 |
+----------------------------------------------------------------+
-- Scale is 4
SELECT MICROSECOND(CAST('1999-01-02 10:11:12.0123' AS DATETIME(4)));
+--------------------------------------------------------------+
| MICROSECOND(CAST('1999-01-02 10:11:12.0123' AS DATETIME(4))) |
+--------------------------------------------------------------+
| 12300 |
+--------------------------------------------------------------+
-- Pads microsecond part with zeros (precision less than 6 digits)
SELECT MICROSECOND(CAST('1999-01-02 10:11:12.123' AS DATETIME(6)));
+-------------------------------------------------------------+
| MICROSECOND(CAST('1999-01-02 10:11:12.123' AS DATETIME(6))) |
+-------------------------------------------------------------+
| 123000 |
+-------------------------------------------------------------+
-- Datetime without scale returns 0
SELECT MICROSECOND(CAST('1999-01-02 10:11:12' AS DATETIME(6)));
+---------------------------------------------------------+
| MICROSECOND(CAST('1999-01-02 10:11:12' AS DATETIME(6))) |
+---------------------------------------------------------+
| 0 |
+---------------------------------------------------------+
-- When a string literal is valid for both datetime and time, prefer parsing it as time
SELECT MICROSECOND("22:12:12.123456");
+--------------------------------+
| MICROSECOND("22:12:12.123456") |
+--------------------------------+
| 123456 |
+--------------------------------+
-- Input is NULL, returns NULL
SELECT MICROSECOND(NULL);
+-------------------+
| MICROSECOND(NULL) |
+-------------------+
| NULL |
+-------------------+