[Résolu] Faire une requete sur un champ DATE, du type 2022/01/01

Discussions sur le module de base de données Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur : Vilains modOOs

Règles du forum
Cette section est dédiée au module Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Pour accélérer les réponses, vous pouvez mettre en ligne votre base en joignant un fichier ODB : comment faire.
cegtio
Membre OOrganisé
Membre OOrganisé
Messages : 68
Inscription : 09 avr. 2023 18:50

[Résolu] Faire une requete sur un champ DATE, du type 2022/01/01

Message par cegtio »

Bonjour la communauté,
je viens vers vous car je sèche.
Sur un champ date de ma base de donnée,
je voudrais faire une requete du type :

Code : Tout sélectionner

SELECT     YEAR("CLIENT"."DATE_1CONTACT") || '/' || MONTH("CLIENT"."DATE_1CONTACT") || '/' || DAYOFMONTH("CLIENT"."DATE_1CONTACT") AS "DATE CONTACT"
Mais ca fait un résultat du type 2022/1/5, alors que je cherche un résultat 2022/01/05.

Auriez-vous une idée pour ajouter les 0 lorsqu'il s'agit bien de chiffres et non de nombres ?

Merci pour votre aide.
Dernière modification par Oukcha le 28 avr. 2023 04:11, modifié 2 fois.
Raison : Ajout coche (balise présente)
LibreOffice 7.5 sous MacOS 10.15.7
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 17219
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: Faire une requete sur un champ DATE, du type 2022/01/01

Message par jeanmimi »

Bonjour,
L'aide demandée serait plus facile avec la Base, cela permettrait de voir comment la date est saisie dans la Table.
Comme la requête que tu rédiges transforme le champ Date, saisi à un format que tu ne précises pas, en Texte, peut-être une instruction SQL de ce type conviendrait :

Code : Tout sélectionner

SUBSTR( [DATE_1CONTACT], 5, 2 )
à la place de

Code : Tout sélectionner

MONTH("CLIENT"."DATE_1CONTACT")
LibreOffice : Version : 25.8.4 (x64)(23 février 2026)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
cegtio
Membre OOrganisé
Membre OOrganisé
Messages : 68
Inscription : 09 avr. 2023 18:50

Re: Faire une requete sur un champ DATE, du type 2022/01/01

Message par cegtio »

Super, ca marche !

Code : Tout sélectionner

    SUBSTR("DATE_1CONTACT", 1, 4) || '/' || SUBSTR("DATE_1CONTACT", 6, 2) || '/' || SUBSTR("DATE_1CONTACT", 9, 2) AS "dateSubstract"
Merci beaucoup !
LibreOffice 7.5 sous MacOS 10.15.7
pulcinopio
Membre prOOscrit
Messages : 243
Inscription : 13 juil. 2022 17:13

Re: Faire une requete sur un champ DATE, du type 2022/01/01

Message par pulcinopio »

cegtio a écrit : 27 avr. 2023 20:19 Super, ca marche !

Code : Tout sélectionner

    SUBSTR("DATE_1CONTACT", 1, 4) || '/' || SUBSTR("DATE_1CONTACT", 6, 2) || '/' || SUBSTR("DATE_1CONTACT", 9, 2) AS "dateSubstract"
Merci beaucoup !
Salut, tu pouvais tout simplement faire comme suit_

Code : Tout sélectionner

SELECT TO_char( "date", 'YYYY-MM-DD' ) AS "date of birth" FROM "Tabella1"
A+

pulcinopio
Libre Office 6.0.4 sur Ubuntu 18.04
cegtio
Membre OOrganisé
Membre OOrganisé
Messages : 68
Inscription : 09 avr. 2023 18:50

Re: [Résolu] Faire une requete sur un champ DATE, du type 2022/01/01

Message par cegtio »

Nettement plus économique :-)
Merci !
LibreOffice 7.5 sous MacOS 10.15.7