MIDNIGHT_SECONDS スカラー関数
MIDNIGHT_SECONDS関数は、0から86400の範囲の整数を返します。これは、午前0時から引数で指定された時刻までの秒数を表します。
スキーマは SYSIBM です。
引数は、時刻、タイム・スタンプ、文字ストリング、またはグラフィック・ストリングのいずれかの組み込みデータ・タイプの値を戻す式であることが必要です。 expression が文字ストリングまたはグラフィック・ストリングの場合、この expression は CLOB または DBCLOB であってはなりません。また expression の値は、実際の長さが 255 バイト以下の、時刻またはタイム・スタンプの有効なストリング表現であることが必要です。 時刻およびタイムスタンプの文字列表現の有効な形式については、「datetime値の文字列表現」 を参照してください。
expression がタイム・ゾーン付きのタイム・スタンプ、またはタイム・ゾーン付きのタイム・スタンプの有効なストリング表現である場合、結果は日時値の UTC 表現から決定されます。
この関数の結果は長精度整数 (large integer) です。
結果はnullになる可能性があります。引数がnullの場合、結果もnull値となります。
例 1: 真夜中と 00:01:00 の間、および
真夜中と 13:10:10 の間の秒数を調べます。 ホスト変数 XTIME1 に
値「00:01:00」があり、XTIME2 に値「13:10:10」があるとします。
SELECT MIDNIGHT_SECONDS(:XTIME1), MIDNIGHT_SECONDS(:XTIME2)
FROM SYSIBM.SYSDUMMY1;この例は 60 と 47410 を戻します。 その理由は、1 分は 60 秒で、1 時間
は 3600 秒なので、00:01:00 は真夜中から 60 秒 ((60 * 1) + 0) であり、13:10:10 は 47410 秒 ((3600 * 13) + (60 * 10) + 10) です。
例2: 指定した日の午前0時から24時までの秒数と、翌日の午前0時から0時までの秒数を求める。SELECT MIDNIGHT_SECONDS('2019-05-20-24:00:00'),
MIDNIGHT_SECONDS('2019-05-21-00:00:00')
FROM SYSIBM.SYSDUMMY1;次の例は、 86400 と 0を返します。 2 つの MIDNIGHT_SECONDS 引数は同じポイント・イン・タイムを表しますが、異なる値が戻されます。
例 3: 以下の MIDNIGHT_SECONDS 関数の呼び出しは、同じ結果を戻します。
SELECT MIDNIGHT_SECONDS('2003-01-02-20.10.05.123456'),
MIDNIGHT_SECONDS('2003-01-02-12.10.05.123456-08:00'),
MIDNIGHT_SECONDS('2003-01-03-05.10.05.123456+09:00')
FROM SYSIBM.SYSDUMMY1;この SELECT ステートメントのそれぞれの MIDNIGHT_SECONDS 関数の呼び出しについて、結果は 72605 になります。入力引数がタイム・ゾーンを含む場合、結果は入力値の UTC 表現から決定されます。 SELECT 文のタイム・ゾーン付きのタイム・スタンプのストリング表現は、すべて同じ UTC 表現: 2003-01-02-20.10.05.123456 になります。
