Gestion des DATE, TIME & TIMESTAMP dans DB2 V7 - Azenorak

Gestion des DATE, TIME & TIMESTAMP dans DB2 La valeur « NULL » La valeur NULL. Sommaire. 1 Introduction. 2 Les fonctions et registres. 2.1 Fonctions ...

un extrait du document



 TITLE \* MERGEFORMAT Gestion des DATE, TIME & TIMESTAMP dans DB2La valeur « NULL » TITLE \* MERGEFORMAT La valeur NULL



Sommaire


 TOC \o "3-3" \t "Titre 1;1;Titre 2;2;annexe;1" 1 Introduction  PAGEREF _Toc151976450 \h 3
2 Les fonctions et registres  PAGEREF _Toc151976451 \h 4
2.1 Fonctions scalaires  PAGEREF _Toc151976452 \h 4
2.2 Les fonctions colonnes  PAGEREF _Toc151976453 \h 8
2.3 Registres  PAGEREF _Toc151976454 \h 8
3 UTILISATION  PAGEREF _Toc151976455 \h 9
3.1 description de la table exemple :  PAGEREF _Toc151976456 \h 9
3.2 Règles liées aux performances  PAGEREF _Toc151976457 \h 9
3.3 Dans un programme COBOL  PAGEREF _Toc151976458 \h 10
3.3.1 Dans un SELECT (ou FETCH)  PAGEREF _Toc151976459 \h 10
3.3.2 Dans un INSERT  PAGEREF _Toc151976460 \h 11
3.3.3 Dans un UPDATE  PAGEREF _Toc151976461 \h 14
4 Ajout d'une colonne dans une table  PAGEREF _Toc151976462 \h 15
4.1 rappel : règles applicables à tout type de données  PAGEREF _Toc151976463 \h 15
4.2 règles spécifiques aux données temporelles  PAGEREF _Toc151976464 \h 15
4.3 Conséquences sur le suivi des applications  PAGEREF _Toc151976465 \h 16
5 Impact sur les utilitaires  PAGEREF _Toc151976466 \h 17
5.1 DSNTIAUL  PAGEREF _Toc151976467 \h 17
5.2 UNLOAD (V7)  PAGEREF _Toc151976468 \h 21
5.3 LOAD  PAGEREF _Toc151976469 \h 23
Annexe : SQLCODES  PAGEREF _Toc151976470 \h 24

DEFINITIONIntroduction
Une donnée en format DATE, TIME ou TIMESTAMP doit toujours contenir une date calendaire ou une heure réelle.
DB2 contrôle la validité d'une date, heure et timestamp qui doivent toujours contenir une valeur plausible. Exemples :
Une date avec jour = 00 ou jour= 31 pour un mois de 30 jours, est interdit.
DB2 rejette également une date (ou timestamp) avec jour = 29 février si l'année n'est pas bissextile.
est NULL lorsque sa valeur est inconnue. Elle n’est pas renseignée ou correspond à un ensemble vide.

Au niveau conceptuel, une donnée déclarée facultative, peut-être NULL.
Selon son format, une donnée qui contient des espaces ou zéro ou une autre valeur … n’est pas NULL, elle est valorisée.

NULL fait partie des mots réservés DB2

Exemple :
On veut stocker le montant d’une prime appréciée lors de l’entretien annuel de chaque salarié. Cette donnée n’est pas valorisée au moment de la création du salarié. Si ce montant est initialisé à zéro, on ne sait pas s’il a été défini à zéro ou si la prime n’a pas été estimée. Le concept NULL permet cette distinction.

Une donnée est définie NULL ou NOT NULL au moment de la création de la colonne dans la table. La définition d’une colonne peut donc être :
NOMCOL data-type NOT NULL
La colonne doit toujours être renseignée.
NOMCOL data-type NOT NULL WITH DEFAULT
Dans un INSERT, si la colonne n’est pas valorisée, elle est initialisée à :
espace si son data-type est CHAR ou VARCHAR
zéro si son data-type est numérique (DECimal, SMALLINT, INTEGER, FLOAT, …).
date du jour si son data-type est DATE
heure machine si son data-type est TIME
date et heure machine si son data-type est TIMESTAMP
NOMCOL data-type NOT NULL WITH DEFAULT valeur
Si la colonne n’est pas valorisée, elle sera initialisée avec la valeur indiquée qui peut être une constante ou un registre DB2 de format compatible avec son data-type.
NOMCOL data-type
Si la colonne n’est pas valorisée, elle est stockée NULL.
NOMCOL data-type WITH DEFAULT valeur
Ici la colonne est NULL possible par contre pour la stocker NULL, il faut impérativement le préciser au niveau de l’insertion ou de la mise à jour de la ligne (voir exemple dans le chapitre utilisation).
DESCRIPTION PHYSIQUE

DB2 gère différents formats externes : ISO, EUR, USA, JIS (japonais).


DATE :

- sous forme ISO : AAAA-MM-JJ