Почему функция DB2 CHAR() возвращает '24:00:00' для поля времени, равного 00:00:00?

Я запрашиваю DB2 на i (AS/400). Простой оператор SELECT для столбца с типом данных TIME возвращает 00:00:00, но когда я использую функцию CHAR(), он возвращает «24:00:00».

Я понимаю, что 24:00:00 является допустимым временем, но почему функция CHAR() возвращает 24, когда собственное ВРЕМЯ возвращает 00?


person user23185    schedule 10.06.2009    source источник
comment
У меня есть более 10 миллионов записей со значением TIME 00:00:00, но только одна из них возвращает «24:00:00», когда используется CHAR().   -  person user23185    schedule 11.06.2009


Ответы (1)


On 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).

person Paul Morgan    schedule 10.06.2009