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'