我正在 i (AS/400) 上查询 DB2。对数据类型为 TIME 的列的普通 SELECT 语句返回 00:00:00,但是当我使用 CHAR() 函数时,它返回“24:00:00”。
我知道 24:00:00 是一个有效时间,但为什么 CHAR() 在本地 TIME 返回 00 时会返回 24?
我正在 i (AS/400) 上查询 DB2。对数据类型为 TIME 的列的普通 SELECT 语句返回 00:00:00,但是当我使用 CHAR() 函数时,它返回“24:00:00”。
我知道 24:00:00 是一个有效时间,但为什么 CHAR() 在本地 TIME 返回 00 时会返回 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)。