Si on pousse un peu plus loin les tests sur cette fonction, on s'aperçoit que le comportement du traitement de la time zone n'est pas le même sur un champ timestamp que sur un champ time. cette instruction SQL :
select * from json_table('{"root": {"ts1": "2023-05-31T12:21:57.123456+02:00", "t1": "12:21:57+02:00"}}', 'lax $.root[*]' columns(ts1 timestamp PATH 'lax $.ts1', t1 time PATH 'lax $.t1'));
renvoie ce résultat :Pour le champ timestamp, SQL considère qu'il doit produire un résultat UTC+0, donc retrancher le timezone, alors que pour le champ time, SQL considère qu'il doit produire l'heure telle que transmise, donc dans mon exemple en UTC+2.
Le point service IBM se rapproche des lab IBM pour connaitre la raison de cette différence.
Partager