[Résolu] Source MariaDB pour 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] Source MariaDB pour calculer la veille d'une date

Message par Dahu »

Bonjour à toutes et tous,
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.

Dude m'a donné une solution qui fonctionne pour une base locale :) , mais pas pour MariaDB :( (viewtopic.php?p=378102#p378102)
La même requête produit l'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`
Qui aurait une suggestion ?

Merci
Dernière modification par micmac le 08 nov. 2023 15:21, modifié 3 fois.
LO 7.4.6.2 / Windows 10
Anakin
NéOOphyte
NéOOphyte
Messages : 145
Inscription : 08 nov. 2023 11:40

Re: Base distante mariadb, calculer la veille d'une date

Message par Anakin »

Bonjour Monsieur,

Saviez-vous que l'internaute peut coder on-line?

Veuillez trouver schémas ci-joints:

Slts

Anakin
Résultat.png
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office 6.0.7 sous Ubuntu 18.04.6
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: Base distante mariadb, calculer la veille d'une date

Message par Dude »

Salut,

DATEDIFF n'est pas une instruction SQL normalisée.
Sa syntaxe dépend du SGBD utilisé.
Comme d'habitude, il faut prendre la peine de lire la documentation de l'éditeur.
Je ne connais pas MariaDB car j'utilise l'original : MySQL
Et on y voit ceci : https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html
Et qu'il vaut mieux utiliser DATE_SUB
Avatar de l’utilisateur
Dahu
Membre lOOyal
Membre lOOyal
Messages : 45
Inscription : 20 août 2017 19:49

Re: Base distante mariadb, calculer la veille d'une date

Message par Dahu »

Merci Dude, :bravo:

La requête
SELECT `Date_Début`, DATE_sub(`Date_Début`,INTERVAL 1 DAY) as date_arrivée FROM `test`.`B_Sessions` AS `B_Sessions`
fonctionne.
Cependant il faut l'éditer en SQL et cliquer sur le bouton "Exécuter directement l'instruction SQL"

Pour ceux qui en auraient besoin, la même requête avec DATE_ADD donne le lendemain.
Pour chaque instruction on peut augmenter le nombre de jours. ON peut remplacer Day par hour, year, etc
(https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_date-add)

Bien le bonjour à tous ceux qui liront.
François
LO 7.4.6.2 / Windows 10
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 9258
Inscription : 28 août 2010 08:45

Re: [résolu]Base distante mariadb, calculer la veille d'une date

Message par micmac »

[Résolu] et non [résolu] Merci de corriger et d'ajouter la coche verte.
Touche Ctrl de Windows = touche cmd⌘ sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur Mac