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()
を参照してください 例。