i (AS/400) 上の DB2 にクエリを実行しています。データ型が TIME の列に対する単純な SELECT ステートメントは 00:00:00 を返しますが、CHAR() 関数を使用すると「24:00:00」が返されます。
24:00:00 が有効な時刻であることは理解していますが、ネイティブの TIME が 00 を返すのに CHAR() が 24 を返すのはなぜですか?
i (AS/400) 上の DB2 にクエリを実行しています。データ型が TIME の列に対する単純な SELECT ステートメントは 00:00:00 を返しますが、CHAR() 関数を使用すると「24:00:00」が返されます。
24:00:00 が有効な時刻であることは理解していますが、ネイティブの TIME が 00 を返すのに CHAR() が 24 を返すのはなぜですか?
V5R4 の場合:
CREATE TABLE TEST (FIELD1 TIME NOT NULL WITH DEFAULT)
INSERT INTO TEST VALUES('00:00:00')
SELECT FIELD1, CHAR(FIELD1) FROM TEST
ショー:
FIELD1 CHAR ( FIELD1 )
00:00:00 00:00:00
24:00:00 になっている理由がわかりません。
私も試しました:
INSERT INTO TEST VALUES('24:00:00')
おそらく24:00:00の値が「00:00:00」と表示されていたと思いますが、これは次のことを示しています:
FIELD1 CHAR ( FIELD1 )
00:00:00 00:00:00
24:00:00 24:00:00
ほぼすべての時刻形式 (*HMS、ISO) に対応。