Je reçois l'erreur de cette ligne
SELECT table.field
FROM table
WHERE table.month = 'october'
AND DATEDIFF(day, table.start_date, table.end_date) < 30
Les dates dans ma colonne sont au format m-j-aa
Dois-je le convertir dans un format différent? Si c'est le cas, comment?
Utilisation de MariaDB
Selon la documentation de MariaDB DATEDIFF
ne prend que deux arguments:
Syntaxe
DATEDIFF(expr1,expr2)
Description
DATEDIFF()
renvoie(expr1 – expr2)
exprimé en valeur en jours d'une date à l'autre.expr1
etexpr2
sont des expressions de date ou de date et d'heure. Seules les parties de date des valeurs sont utilisées dans le calcul.
@alex_b c'est une observation très courante de se confondre entre les syntaxes des fonctions DATEDIFF & TIMESTAMPDIFF. La suite lien aidera certainement avec la syntaxe de DATEDIFF & cette page listera toutes les autres fonctions liées à la date disponibles dans MySQL parent de MariaDB. \
Le référencement des liens ci-dessus est un résumé -
TIMEDIFF(expr1,expr2)
expr1 - '2000:01:01 00:00:00'
expr2 - '2000:01:01 00:00:00.000001'
TIMEDIFF () renvoie expr1 - expr2 exprimé en valeur de temps. expr1 et expr2 sont des expressions d'heure ou de date et d'heure, mais les deux doivent être du même type.
DATEDIFF(expr1,expr2)
expr1 - '2007-12-31 23:59:59'
expr2 - '2007-12-30'
DATEDIFF () renvoie expr1 - expr2 exprimé en valeur en jours d'une date à l'autre. expr1 et expr2 sont des expressions de date ou de date et d'heure. Seules les parties de date des valeurs sont utilisées dans le calcul.
Voici le scénario pour lequel je l'ai utilisé -
SET output_date = DATEDIFF (CURDATE (), input_date), ... ci-dessus a fonctionné pour moi. Bonne chance!