MySQLでは、TIMESTAMP() 関数は、渡された引数に基づいて日時値を返します。1つまたは2つの引数を指定できます。 2つ指定すると、最初の1つに2つ目の追加が追加され、結果が返されます。
構文
次の2つの形式のいずれかを使用できます。
TIMESTAMP(expr) TIMESTAMP(expr1,expr2)
最初の引数(expr およびexpr1 )は日付または日時の式です。 2番目の引数(expr2 )は時間式です。 2つの引数を指定すると、expr2 expr1に追加されます 結果は日時値です。
例1-「日付」引数を指定する
この例では、日付式を提供します。
SELECT TIMESTAMP('1999-12-31');
結果:
+-------------------------+
| TIMESTAMP('1999-12-31') |
+-------------------------+
| 1999-12-31 00:00:00 |
+-------------------------+
したがって、引数が日付式であるか日時式であるかに関係なく、結果は日時値になります。
例2–「日時」引数を指定する
そして、これが日時式を使用した例です。
SELECT TIMESTAMP('1999-12-31 23:59:59');
結果:
+----------------------------------+
| TIMESTAMP('1999-12-31 23:59:59') |
+----------------------------------+
| 1999-12-31 23:59:59 |
+----------------------------------+
> 例3–分数秒を含める
マイクロ秒(6桁)までの秒の一部を含めることもできます。これを行うと、結果にはその部分も含まれます。
SELECT TIMESTAMP('1999-12-31 23:59:59.999999');
結果:
+-----------------------------------------+
| TIMESTAMP('1999-12-31 23:59:59.999999') |
+-----------------------------------------+
| 1999-12-31 23:59:59.999999 |
+-----------------------------------------+
例4–2つの引数を指定する
2つの引数を使用した例を次に示します。前述のように、2番目のものが最初のものに追加されます。
SELECT TIMESTAMP('1999-12-31', '12:30:45');
結果:
+-------------------------------------+
| TIMESTAMP('1999-12-31', '12:30:45') |
+-------------------------------------+
| 1999-12-31 12:30:45 |
+-------------------------------------+
例5–より大きな「時間」値
時間データ型の範囲は-838:59:59です。 838:59:59 。これは、時刻を表すだけではないためです。また、経過時間を表すために使用することもできます。この場合、これを使用して、日付値に多数の時間を追加します。
SELECT TIMESTAMP('1999-12-31', '400:30:45');
結果:
+--------------------------------------+
| TIMESTAMP('1999-12-31', '400:30:45') |
+--------------------------------------+
| 2000-01-16 16:30:45 |
+--------------------------------------+
例6–負の値
2番目の値の前にマイナス記号を付けるだけで、最初の引数から2番目の引数を引くことができます。
SELECT TIMESTAMP('1999-12-31', '-400:30:45');
結果:
+---------------------------------------+
| TIMESTAMP('1999-12-31', '-400:30:45') |
+---------------------------------------+
| 1999-12-14 07:29:15 |
+---------------------------------------+
例7–現在の日付を使用する
現在の日付を使用するタイムスタンプが必要な場合は、NOW()などの関数に関心があるかもしれません。 、CURDATE() 、場合によってはSYSDATE() (違いについては、SYSDATE()を参照してください。 vs NOW() 。
ただし、TIMESTAMP() 現在の日付に時刻の値を追加する場合など、特定の場合には、関数が引き続き優先される関数である可能性があります。
SELECT
TIMESTAMP(CURDATE()) AS 'Today',
TIMESTAMP(CURDATE(), '24:00:00') AS 'Tomorrow';
結果:
+---------------------+---------------------+ | Today | Tomorrow | +---------------------+---------------------+ | 2018-07-03 00:00:00 | 2018-07-04 00:00:00 | +---------------------+---------------------+
TIMESTAMPADD()関数
TIMESTAMPADD()を使用できます 指定された単位を日付または日時の値に追加する関数。この関数は、日、月、年などの単位も受け入れます。
TIMESTAMP()を見つけた場合 ニーズに対して制限が強すぎます。TIMESTAMPADD()を参照してください 例。