MariaDB
 sql >> Base de données >  >> RDS >> MariaDB

Comment DAYOFYEAR() fonctionne dans MariaDB

Dans MariaDB, DAYOFYEAR() est une fonction de date et d'heure intégrée qui renvoie le jour de l'année à partir d'une date donnée.

Il accepte un argument, qui est la date à partir de laquelle vous souhaitez extraire le jour de l'année.

Il renvoie le jour sous la forme d'un nombre dans la plage 1 à 366 .

Syntaxe

La syntaxe ressemble à ceci :

DAYOFYEAR(date) 

date est la date à partir de laquelle obtenir le jour de l'année.

Exemple

Voici un exemple :

SELECT DAYOFYEAR('2030-12-25'); 

Résultat :

+-------------------------+| JOURDEANNEE('2030-12-25') |+-------------------------+| 359 |+-------------------------+

Valeurs DateHeure

Cela fonctionne également avec les valeurs datetime :

SELECT DAYOFYEAR('2030-02-01 10:30:45'); 

Résultat :

+------------------------------------------------+| JOURDEANNEE('2030-02-01 10:30:45') |+--------------------------------- -+| 32 |+------------------------------------------------+

Zéro jour

Zéro jour donne null .

Exemple :

SELECT DAYOFYEAR('2030-00-00'); 

Résultat :

+-------------------------+| JOURDEANNEE('2030-00-00') |+-------------------------+| NULL |+-------------------------+

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 DAYOFYEAR(20301125); 

Résultat :

+---------------------+| JOURDEANNEE(20301125) |+---------------------+| 329 |+---------------------+

Ou même le suivant (qui utilise une année à deux chiffres) :

SELECT DAYOFYEAR(301125); 

Résultat :

+-------------------+| JOURDEANNEE(301125) |+-------------------+| 329 |+------------------+

Mais ça doit avoir un sens comme date. Voici ce qui se passe si j'augmente la partie jour à un jour non valide :

SELECT DAYOFYEAR(20300135); 

Résultat :

+---------------------+| JOURDEANNEE(20300135) |+---------------------+| NULL |+---------------------+

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 
    DAYOFYEAR('2030/06/25'),
    DAYOFYEAR('2030,06,25'),
    DAYOFYEAR('2030:06:25'),
    DAYOFYEAR('2030;06!25'); 

Résultat (en utilisant la sortie verticale) :

DAYOFYEAR('2030/06/25') :176DAYOFYEAR('2030,06,25') :176DAYOFYEAR('2030:06:25') :176DAYOFYEAR('2030;06!25') :176 

Date actuelle

Nous pouvons passer NOW() comme argument de date pour utiliser la date actuelle :

SELECT 
    NOW(),
    DAYOFYEAR(NOW()); 

Résultat :

+---------------------+------------------+| MAINTENANT() | DAYOFYEAR(MAINTENANT()) |+---------------------+------------------+| 2021-05-16 09:05:57 | 136 |+---------------------+-------------+

Arguments invalides

Lorsqu'un argument invalide est passé, DAYOFYEAR() renvoie null :

SELECT DAYOFYEAR('Friday'); 

Résultat :

+---------------------+| DAYOFYEAR('Vendredi') |+---------------------+| NULL |+---------------------+

Argument manquant

Appel de DAYOFYEAR() avec le mauvais nombre d'arguments, ou sans passer d'arguments, génère une erreur :

SELECT DAYOFYEAR(); 

Résultat :

ERREUR 1582 (42000) :nombre de paramètres incorrect dans l'appel à la fonction native 'DAYOFYEAR'

Et un autre exemple :

SELECT DAYOFYEAR('2030-01-25', '2045-05-08'); 

Résultat :

ERREUR 1582 (42000) :nombre de paramètres incorrect dans l'appel à la fonction native 'DAYOFYEAR'