In PostgreSQL, il make_time()
La funzione consente di creare un'ora dai suoi campi di ore, minuti e secondi.
Sintassi
La funzione ha la seguente sintassi:
make_time(hour int, min int, sec double precision)
Dove hour
è la parte dell'ora, min
è la parte dei minuti e sec
è la seconda parte.
L'ora ei minuti sono forniti come un numero intero , i secondi sono forniti come doppia precisione .
Il risultato viene restituito come ora . Più precisamente, viene restituito come ora senza fuso orario .
Esempio
Ecco un esempio di base da dimostrare.
SELECT make_time(7, 45, 15.08);
Risultato:
07:45:15.08
E possiamo verificare il tipo restituito con la seguente query.
SELECT pg_typeof(make_time(7, 45, 15.08));
Risultato:
time without time zone
Il pg_typeof()
function restituisce il tipo di dati del suo argomento, quindi ho passato make_time()
come argomento..
Fuori portata
Se uno qualsiasi degli argomenti non rientra nell'intervallo dei possibili valori per la sua parte relativa alla data, verrà visualizzato un errore "fuori intervallo".
SELECT make_time(25, 45, 15.08);
Risultato:
ERROR: time field value out of range: 25:45:15.08
Passare le stringhe come argomenti
La documentazione di Postgres afferma che gli argomenti devono essere interi (e doppia precisione nel caso dei seconds
argomento), ma anche il passaggio di stringhe funziona (probabilmente perché vengono convertite implicitamente in numeri interi), purché ogni argomento rientri nell'intervallo corretto.
SELECT make_time('7', '45', '15.08');
Risultato:
07:45:15.08
Ancora una volta possiamo usare pg_type()
per verificare il tipo di dati risultante.
SELECT pg_typeof(make_time('7', '45', '15.08'));
Risultato:
time without time zone
Tuttavia, devi comunque assicurarti che ogni argomento sia valido una volta convertito in un numero intero, altrimenti riceverai un errore.
SELECT make_time('25', '45', '15.08');
Risultato:
ERROR: time field value out of range: 25:45:15.08