In MariaDB, DAYOFYEAR() è una funzione di data e ora incorporata che restituisce il giorno dell'anno da una determinata data.
Accetta un argomento, che è la data da cui vuoi estrarre il giorno dell'anno.
Restituisce il giorno come numero nell'intervallo 1 a 366 .
Sintassi
La sintassi è questa:
DAYOFYEAR(date)
Dove date è la data da cui ricavare il giorno dell'anno.
Esempio
Ecco un esempio:
SELECT DAYOFYEAR('2030-12-25'); Risultato:
+-------------------------+
| DAYOFYEAR('2030-12-25') |
+-------------------------+
| 359 |
+-------------------------+ Valori di data e ora
Funziona anche con i valori datetime:
SELECT DAYOFYEAR('2030-02-01 10:30:45'); Risultato:
+----------------------------------+
| DAYOFYEAR('2030-02-01 10:30:45') |
+----------------------------------+
| 32 |
+----------------------------------+ Zero giorni
Zero giorni risultano null .
Esempio:
SELECT DAYOFYEAR('2030-00-00'); Risultato:
+-------------------------+
| DAYOFYEAR('2030-00-00') |
+-------------------------+
| NULL |
+-------------------------+ Date numeriche
È anche possibile trasmettere le date come numero, purché abbia senso come data.
Esempio
SELECT DAYOFYEAR(20301125); Risultato:
+---------------------+ | DAYOFYEAR(20301125) | +---------------------+ | 329 | +---------------------+
O anche il seguente (che utilizza un anno a due cifre):
SELECT DAYOFYEAR(301125); Risultato:
+-------------------+ | DAYOFYEAR(301125) | +-------------------+ | 329 | +-------------------+
Ma deve avere un senso come appuntamento. Ecco cosa succede se aumento la parte del giorno a un giorno non valido:
SELECT DAYOFYEAR(20300135); Risultato:
+---------------------+ | DAYOFYEAR(20300135) | +---------------------+ | NULL | +---------------------+
Altri delimitatori
È possibile utilizzare altri delimitatori per la data. MariaDB è abbastanza clemente quando si tratta di delimitatori sulle date. Ecco alcuni validi esempi:
SELECT
DAYOFYEAR('2030/06/25'),
DAYOFYEAR('2030,06,25'),
DAYOFYEAR('2030:06:25'),
DAYOFYEAR('2030;06!25'); Risultato (usando l'output verticale):
DAYOFYEAR('2030/06/25'): 176
DAYOFYEAR('2030,06,25'): 176
DAYOFYEAR('2030:06:25'): 176
DAYOFYEAR('2030;06!25'): 176 Data attuale
Possiamo passare NOW() come argomento data per utilizzare la data corrente:
SELECT
NOW(),
DAYOFYEAR(NOW()); Risultato:
+---------------------+------------------+ | NOW() | DAYOFYEAR(NOW()) | +---------------------+------------------+ | 2021-05-16 09:05:57 | 136 | +---------------------+------------------+
Argomenti non validi
Quando viene passato un argomento non valido, DAYOFYEAR() restituisce null :
SELECT DAYOFYEAR('Friday'); Risultato:
+---------------------+
| DAYOFYEAR('Friday') |
+---------------------+
| NULL |
+---------------------+ Argomento mancante
Chiamando DAYOFYEAR() con il numero errato di argomenti, o senza passare alcun argomento, si verifica un errore:
SELECT DAYOFYEAR(); Risultato:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DAYOFYEAR'
E un altro esempio:
SELECT DAYOFYEAR('2030-01-25', '2045-05-08'); Risultato:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DAYOFYEAR'