[Résolu] Calculer la veille d'une date

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.
Avatar de l’utilisateur
Dahu
Membre lOOyal
Membre lOOyal
Messages : 45
Inscription : 20 août 2017 19:49

[Résolu] Calculer la veille d'une date

Message par Dahu »

Bonjour,
Je souhaite, dans une requête, calculer la veille d'une date.

Une table stages contient la date de début et la date de fin du stage.
Les stagiaire arrivent sur place la veille du stage.
Pour gérer les hébergements, je voudrais calculer la veille de la date de début.

Date-début-1 ne fonctionne pas
J'ai essayé plusieurs formes de adddate() et de subdate() en vain. :tesfou:

Si quelqu'un a une suggestion...
Merci de votre aide
Amitiés
François

BD en PJ, la requête hébergement ne fonctionne pas avec Date-début-1
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par micmac le 08 nov. 2023 11:59, modifié 7 fois.
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25184
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: Calculer la veille d'une date

Message par Dude »

Salut,

Comme toujours, cette problématique est déjà passée
Image
viewtopic.php?t=1543 sur les ajouts de nombre à une date
Il faudra bien sûr faire une soustraction. :)


.
no_problemo.gif
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Avatar de l’utilisateur
Dahu
Membre lOOyal
Membre lOOyal
Messages : 45
Inscription : 20 août 2017 19:49

Re: Calculer la veille d'une date

Message par Dahu »

Bonjour à toutes et tous,

Merci Dude pour ta réponse, ça résout le problème.
Désolé de n'avoir pas trouvé le post avec cette solution, j'y ai pourtant passé 2 bonnes heures.

Par curiosité : pourquoi 'dd' pour intervalle et pas 'd' comme dans la fonction basic ?

Chez moi, le format jj/mm/aa n'est pas conservé dans l'affichage de la requête (LO 7.5.7.1 - win)

En P.J. le fichier odb pour ceux qui cherchent...
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LO 7.4.6.2 / Windows 10
Avatar de l’utilisateur
Dahu
Membre lOOyal
Membre lOOyal
Messages : 45
Inscription : 20 août 2017 19:49

Re: Calculer la veille d'une date

Message par Dahu »

Dahu a écrit : 08 nov. 2023 09:53 Bonjour à toutes et tous,

Merci Dude pour ta réponse, ça résout le problème.
Désolé de n'avoir pas trouvé le post avec cette solution, j'y ai pourtant passé 2 bonnes heures.

Par curiosité : pourquoi 'dd' pour intervalle et pas 'd' comme dans la fonction basic ?

Chez moi, le format jj/mm/aa n'est pas conservé dans l'affichage de la requête (LO 7.5.7.1 - win)

En P.J. le fichier odb pour ceux qui cherchent...
Malheureusement la requête qui fonctionne dans une base en local, ne fonctionne pas avec ma base MariaDB gérée avec Libre Office. :marto:
Message d'erreur :
Impossible de charger le contenu des données.
Statut SQL: 42000
Code d'erreur: 1582
Incorrect parameter count in the call to native function 'DATEDIFF'
La commande SQL suivante est à la source de l'erreur :
SELECT `Date_Début`, DATEDIFF( 'dd', '1899-12-30', `Date_Début` ) - 1 FROM `test`.`B_Sessions` AS `B_Sessions`

Remarque : quand je met "Date_Début", LO le transforme en `Date_Début`

Je laisse en résolu pour ceux qui cherchent la solution sur une base locale et je fais un nouveau sujet pour mariaDB
Bonne journée à toutes et tous
LO 7.4.6.2 / Windows 10
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25184
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: Calculer la veille d'une date

Message par Dude »

Dahu a écrit : 08 nov. 2023 09:53Par curiosité : pourquoi 'dd' pour intervalle et pas 'd' comme dans la fonction basic ?
Parce qu'une instruction SQL n'a rien à voir avec un langage de programmation.
C'est comme demandé pourquoi on dit Hello en anglais et Hola en espagnol.
Dahu a écrit : 08 nov. 2023 11:19 Je laisse en résolu pour ceux qui cherchent la solution sur une base locale et je fais un nouveau sujet pour mariaDB
Et pourrais-tu penser à ceux qui font des recherches dans ce forum ?
Et indiquer le lien du nouveau fil ouvert : viewtopic.php?t=67963