V PostgreSQL je to make_time()
Funkce umožňuje vytvořit čas z polí hodin, minut a sekund.
Syntaxe
Funkce má následující syntaxi:
make_time(hour int, min int, sec double precision)
Kde hour
je hodinová část, min
je minutová část a sec
je druhá část.
Hodiny a minuty jsou uvedeny jako celé číslo , sekundy jsou poskytovány s dvojitou přesností .
Výsledek je vrácen jako čas . Přesněji řečeno, je to vráceno jako čas bez časového pásma .
Příklad
Zde je základní příklad k demonstraci.
SELECT make_time(7, 45, 15.08);
Výsledek:
07:45:15.08
A návratový typ můžeme ověřit pomocí následujícího dotazu.
SELECT pg_typeof(make_time(7, 45, 15.08));
Výsledek:
time without time zone
pg_typeof()
funkce vrací datový typ svého argumentu, a tak jsem předal make_time()
jako argument..
Mimo rozsah
Pokud je některý z argumentů mimo rozsah možných hodnot pro jeho datovou část, zobrazí se chyba „mimo rozsah“.
SELECT make_time(25, 45, 15.08);
Výsledek:
ERROR: time field value out of range: 25:45:15.08
Předávání řetězců jako argumentů
Dokumentace Postgres uvádí, že argumenty musí být celá čísla (a dvojnásobná přesnost v případě seconds
argument), ale funguje také předávání řetězců (pravděpodobně proto, že jsou implicitně převedeny na celá čísla), pokud je každý argument ve správném rozsahu.
SELECT make_time('7', '45', '15.08');
Výsledek:
07:45:15.08
Opět můžeme použít pg_type()
pro kontrolu výsledného datového typu.
SELECT pg_typeof(make_time('7', '45', '15.08'));
Výsledek:
time without time zone
Stále se však musíte ujistit, že každý argument bude platný po převedení na celé číslo, jinak se zobrazí chyba.
SELECT make_time('25', '45', '15.08');
Výsledek:
ERROR: time field value out of range: 25:45:15.08