IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Voir le flux RSS

Séb.

Exercice SQL -- P01E03 -- La date an 2000

Noter ce billet
par , 27/11/2022 à 13h26 (497 Affichages)
Un mauvais typage de colonne à rattraper... Quelle idée de coder une date dans un CHAR(6) AAMMJJ au lieu d'un bon vieux DATE !

Voici l'idée pour ce 3e exercice la date an 2000 !

Il va falloir ajouter 1900 au deux premiers caractères de la valeur si elle est supérieure ou égale à 60. Sinon lui ajouter 2000.
Rien de bien compliqué. MySQL permet d'additionner des entiers et des chaînes sans CAST() explicite, est-ce pareil avec les autres SGBD ?

Ma solution :

Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
UPDATE T_AMORTISSEMENT_AMT
SET AMT_FIN_Y2K = CONCAT_WS(
    '-',
    SUBSTRING(AMT_FIN FROM 1 FOR 2) + CASE WHEN AMT_FIN >= '600101' THEN 1900 ELSE 2000 END,
    SUBSTRING(AMT_FIN FROM 3 FOR 2),
    SUBSTRING(AMT_FIN FROM 5 FOR 2)
);

Notons que la nouvelle colonne T_AMORTISSEMENT_AMT.AMT_FIN_Y2K est un CHAR(10) et toujours pas un DATE

Envoyer le billet « Exercice SQL -- P01E03 -- La date an 2000 » dans le blog Viadeo Envoyer le billet « Exercice SQL -- P01E03 -- La date an 2000 » dans le blog Twitter Envoyer le billet « Exercice SQL -- P01E03 -- La date an 2000 » dans le blog Google Envoyer le billet « Exercice SQL -- P01E03 -- La date an 2000 » dans le blog Facebook Envoyer le billet « Exercice SQL -- P01E03 -- La date an 2000 » dans le blog Digg Envoyer le billet « Exercice SQL -- P01E03 -- La date an 2000 » dans le blog Delicious Envoyer le billet « Exercice SQL -- P01E03 -- La date an 2000 » dans le blog MySpace Envoyer le billet « Exercice SQL -- P01E03 -- La date an 2000 » dans le blog Yahoo

Mis à jour 27/11/2022 à 16h13 par Séb.

Tags: exercice, sql
Catégories
Programmation

Commentaires