sql >> Databáze >  >> RDS >> PostgreSQL

Jak make_time() funguje v PostgreSQL

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

  1. Škálovatelné procesory Intel Xeon a SQL Server 2017

  2. Jak změnit výchozí formát nls_date_format pro klienta Oracle jdbc

  3. Statistika objektů databáze SQL Server

  4. Přírůstková replikace dat v IRI Workbench