MIDNIGHT_SECONDS スカラー関数

MIDNIGHT_SECONDS関数は、0から86400の範囲の整数を返します。これは、午前0時から引数で指定された時刻までの秒数を表します。

構文図を読むビジュアルシンタックスダイアグラムをスキップするMIDNIGHT_SECONDS( 式)

スキーマは 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 になります。