MariaDB
 sql >> Database >  >> RDS >> MariaDB

Come funziona MAKEDATE() in MariaDB

In MariaDB, MAKEDATE() è una funzione di data e ora incorporata che restituisce una data, in base all'anno e al giorno dell'anno forniti come argomenti.

Sintassi

La sintassi è questa:

MAKEDATE(year,dayofyear)

Esempio

Ecco un esempio:

SELECT MAKEDATE(2030, 10);

Risultato:

+--------------------+
| MAKEDATE(2030, 10) |
+--------------------+
| 2030-01-10         |
+--------------------+

E un altro:

SELECT MAKEDATE(2030, 100);

Risultato:

+---------------------+
| MAKEDATE(2030, 100) |
+---------------------+
| 2030-04-10          |
+---------------------+

Restituisci una data in un anno futuro

Se il secondo argomento (giorno dell'anno) è maggiore del numero di giorni dell'anno, la data risultante è un anno futuro.

Esempio:

SELECT
    MAKEDATE(2030, 366),
    MAKEDATE(2030, 700),
    MAKEDATE(2030, 7000);

Risultato:

+---------------------+---------------------+----------------------+
| MAKEDATE(2030, 366) | MAKEDATE(2030, 700) | MAKEDATE(2030, 7000) |
+---------------------+---------------------+----------------------+
| 2031-01-01          | 2031-12-01          | 2049-03-01           |
+---------------------+---------------------+----------------------+

Zero giorni

Il secondo argomento (giorno dell'anno) deve essere maggiore di 0 oppure il risultato è null .

Esempio:

SELECT
    MAKEDATE(2030, 366),
    MAKEDATE(2030, 700),
    MAKEDATE(2030, 7000);

Risultato:

+---------------------+---------------------+----------------------+
| MAKEDATE(2030, 366) | MAKEDATE(2030, 700) | MAKEDATE(2030, 7000) |
+---------------------+---------------------+----------------------+
| 2031-01-01          | 2031-12-01          | 2049-03-01           |
+---------------------+---------------------+----------------------+

Argomento mancante

Chiamando MAKEDATE() con il numero errato di argomenti, o senza passare alcun argomento, genera un errore:

SELECT MAKEDATE();

Risultato:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'MAKEDATE'

E un altro esempio:

SELECT MAKEDATE( 2020, 10, 20 );

Risultato:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'MAKEDATE'

Prendi un momento

Vedi anche MAKETIME() per costruire un valore temporale dalle sue ore, minuti e secondi.