Dans MariaDB, QUARTER()
est une fonction de date et d'heure intégrée qui renvoie le trimestre à partir d'une expression de date donnée.
Il accepte un argument, qui est la date à partir de laquelle vous souhaitez extraire le trimestre.
Il renvoie le trimestre sous la forme d'un nombre dans la plage 1
à 4
. Pour les dates avec zéro mois (par exemple 0000-00-00
ou 2025-00-00
), le résultat est 0
.
Syntaxe
La syntaxe ressemble à ceci :
QUARTER(date)
Où date
est l'expression de date à partir de laquelle obtenir le trimestre.
Exemple
Voici un exemple :
SELECT QUARTER('2030-08-01');
Résultat :
+-----------------------+| TRIMESTRE('2030-08-01') |+-----------------------+| 3 |+-----------------------+
Valeurs DateHeure
Cela fonctionne également avec les valeurs datetime :
SELECT QUARTER('2030-08-01 10:30:45');
Résultat :
+---------------------------------------------+| TRIMESTRE('2030-08-01 10:30:45') |+--------------------------------+ | 3 |+--------------------------------+
Zéro mois
Les dates avec zéro mois donnent 0
.
Exemple :
SELECT QUARTER('2030-00-00');
Résultat :
+-----------------------+| TRIMESTRE('2030-00-00') |+-----------------------+| 0 |+-----------------------+
Dates numériques
Il est également possible de transmettre des dates sous forme de nombre, tant que cela a du sens en tant que date.
Exemple
SELECT QUARTER(20301125);
Résultat :
+-------------------+| TRIMESTRE(20301125) |+------------------------------+| 4 |+-------------------+
Ou même le suivant (qui utilise une année à deux chiffres) :
SELECT QUARTER(301125);
Résultat :
+-----------------+| TRIMESTRE(301125) |+-----------------+| 4 |+-----------------+
Mais ça doit avoir un sens comme date. Voici ce qui se passe si j'augmente la partie jour à un jour non valide :
SELECT QUARTER(20301135);
Résultat :
+-------------------+| TRIMESTRE(20301135) |+------------------------------+| NULL |+-------------------+1 ligne dans l'ensemble, 1 avertissement (0.000 sec)
Nous pouvons vérifier l'avertissement comme ceci :
SHOW WARNINGS;
Résultat :
+---------+------+---------------------------------- ---------+| Niveau | Codage | Message |+---------+------+------------------------------ --------+| Avertissement | 1292 | Valeur de date/heure incorrecte :'20301135' |+---------+------+------------------------ --------------+
Autres délimiteurs
Vous pouvez utiliser d'autres délimiteurs pour la date. MariaDB est assez indulgent en ce qui concerne les délimiteurs de dates. Voici quelques exemples valides :
SELECT
QUARTER('2030/06/25'),
QUARTER('2030,06,25'),
QUARTER('2030:06:25'),
QUARTER('2030;06!25');
Résultat (en utilisant la sortie verticale) :
TRIMESTRE('2030/06/25'):2TRIMESTRE('2030,06,25'):2TRIMESTRE('2030:06:25'):2TRIMESTRE('2030;06!25'):2Date actuelle
Nous pouvons passer
NOW()
comme argument datetime pour utiliser la date actuelle :SELECT NOW(), QUARTER(NOW());
Résultat :
+---------------------+----------------+| MAINTENANT() | TRIMESTRE(MAINTENANT()) |+---------------------+----------------+| 2021-05-18 09:23:27 | 2 |+---------------------+----------------+Arguments invalides
Lorsqu'un argument invalide est passé,
QUARTER()
renvoienull
:SELECT QUARTER('2030-65-78');
Résultat :
+-----------------------+| TRIMESTRE('2030-65-78') |+-----------------------+| NULL |+-----------------------+1 ligne dans l'ensemble, 1 avertissement (0.000 sec)Vérifiez l'avertissement :
SHOW WARNINGS;
Résultat :
+---------+------+---------------------------------- -----------+| Niveau | Codage | Message |+---------+------+------------------------------ ----------+| Avertissement | 1292 | Valeur datetime incorrecte :'2030-65-78' |+---------+------+-------------------- --------------------+Argument manquant
Appel de
QUARTER()
avec le mauvais nombre d'arguments, ou sans passer d'arguments, génère une erreur :SELECT QUARTER();
Résultat :
ERROR 1064 (42000) :vous avez une erreur dans votre syntaxe SQL ; consultez le manuel qui correspond à la version de votre serveur MariaDB pour la bonne syntaxe à utiliser près de ')' à la ligne 1Et un autre exemple :
SELECT QUARTER('2030-12-10', '2031-12-10');
Résultat :
ERROR 1064 (42000) :vous avez une erreur dans votre syntaxe SQL ; consultez le manuel qui correspond à la version de votre serveur MariaDB pour la bonne syntaxe à utiliser près de ''2031-12-10')' à la ligne 1