2009-06-10 24 views
0

J'interroge DB2 sur i (AS/400). Une instruction SELECT simple sur une colonne avec le type de données TIME renvoie 00:00:00, mais lorsque j'utilise la fonction CHAR(), elle renvoie "24: 00: 00".Pourquoi la fonction DB2 CHAR() renvoie-t-elle '24: 00: 00 'pour un champ de temps 00:00:00?

Je comprends que 24:00:00 est une heure valide, mais pourquoi CHAR() retournera 24 quand le TIME natif revient 00?

+0

J'ai plus de 10 millions d'enregistrements avec une valeur TIME de 00:00:00, mais un seul d'entre eux renvoie '24: 00: 00 'quand CHAR() est utilisé. – user23185

Répondre

0

Sur V5R4:

CREATE TABLE TEST (FIELD1 TIME NOT NULL WITH DEFAULT) 

INSERT INTO TEST VALUES('00:00:00') 

SELECT FIELD1, CHAR(FIELD1) FROM TEST 

Spectacles:

FIELD1 CHAR (FIELD1) 
00:00:00  00:00:00  

Je ne sais pas pourquoi vous obtenez 24:00:00.

J'ai aussi essayé:

INSERT INTO TEST VALUES('24:00:00') 

pensant peut-être une valeur 24:00:00 déployait comme '00: 00: 00' , mais cela montre:

FIELD1 CHAR (FIELD1) 
00:00:00  00:00:00  
24:00:00  24:00:00  

pour à peu près tous les temps formats (* HMS, ISO).