Bonjour,
Je n'ai jamais utilisé DB2.
J'ai une requête (avec l'ETL Genio) a faire une base DB2 for iseries5. J'aimerais faire une requete qui selectionne les données entre 2 dates (between).
Ma table source contient 3 colonnes numériques pour chacune des données: année, mois, jour.
Je suis donc obligée de construire ma date.
Mon problème est que lorsque je fais un between entre 2 dates, j'ai trop de données:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SELECT VOA4, VOMM, VOJJ, date(concat(concat(concat(concat(G_T0.VOA4,'-'),G_T0.VOMM),'-'),G_T0.VOJJ)) as d_day_of_origin_date, CHAR(date(concat(concat(concat(concat(G_T0.VOA4,'-'),G_T0.VOMM),'-'),G_T0.VOJJ)),eur) as d_day_of_origin, FROM "N.VOLS" WHERE and LTRIM(RTRIM(CHAR(G_T0.VOA4))) CONCAT '-' CONCAT LTRIM(RTRIM(CHAR(G_T0.VOMM))) CONCAT '-' CONCAT LTRIM(RTRIM(CHAR(G_T0.VOJJ))) = LTRIM(RTRIM(char(2008))) CONCAT '-' CONCAT LTRIM(RTRIM(CHAR(10))) CONCAT '-' CONCAT LTRIM(RTRIM(CHAR(3)))
Ex: si je sélectionne entre le 03/10/2008 et le 04/10/2008, la requête me renvoie les dates du 03/10/2008, 04/10/2008, 30/10/2008 et 31/10/2008
car ma fonction dans le where n'est pas au format date.
Lorsque je mets la fonction "date()" dans le select, je n'ai pas de souci.
Par contre, dès que je la met dans le where, j'ai une erreur:
Vous avez une idée pour que je puisse sélectionner mes dates dans le where?[SQL0181] Value in date, time, or timestamp string not valid.
Partager