PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak make_time() działa w PostgreSQL

W PostgreSQL funkcja make_time() funkcja umożliwia utworzenie czasu z pól godzin, minut i sekund.

Składnia

Funkcja ma następującą składnię:

make_time(hour int, min int, sec double precision)

Gdzie hour to część godzinowa, min to część minut, a sec to druga część.

Godzina i minuty są podawane jako liczba całkowita , sekundy są podawane jako podwójna precyzja .

Wynik jest zwracany jako czas . Dokładniej, jest zwracany jako czas bez strefy czasowej .

Przykład

Oto podstawowy przykład do zademonstrowania.

SELECT make_time(7, 45, 15.08);

Wynik:

07:45:15.08

I możemy zweryfikować typ zwrotu za pomocą następującego zapytania.

SELECT pg_typeof(make_time(7, 45, 15.08));

Wynik:

time without time zone

pg_typeof() funkcja zwraca typ danych swojego argumentu, więc przekazałem make_time() jako argument..

Poza zasięgiem

Jeśli którykolwiek z argumentów jest poza zakresem możliwych wartości dla jego części daty, otrzymasz błąd „poza zakresem”.

SELECT make_time(25, 45, 15.08);

Wynik:

ERROR: time field value out of range: 25:45:15.08

Przekazywanie ciągów jako argumentów

Dokumentacja Postgresa stwierdza, że ​​argumenty muszą być liczbami całkowitymi (i podwójnej precyzji w przypadku seconds argument), ale przekazywanie łańcuchów również działa (prawdopodobnie dlatego, że są one niejawnie konwertowane na liczby całkowite), o ile każdy argument znajduje się we właściwym zakresie.

SELECT make_time('7', '45', '15.08');

Wynik:

07:45:15.08

Ponownie możemy użyć pg_type() aby sprawdzić wynikowy typ danych.

SELECT pg_typeof(make_time('7', '45', '15.08'));

Wynik:

time without time zone

Jednak nadal musisz upewnić się, że każdy argument będzie prawidłowy po przekonwertowaniu na liczbę całkowitą, w przeciwnym razie otrzymasz błąd.

SELECT make_time('25', '45', '15.08');

Wynik:

ERROR: time field value out of range: 25:45:15.08

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak pobrać kolumnę Postgres bytea jako plik?

  2. hibernacja z c3p0:funkcja createClob() nie jest jeszcze zaimplementowana

  3. PostgreSQL nie używa częściowego indeksu

  4. Błąd gniazda Postgresql w OSX 10.7.3 podczas uruchamiania syncdb Django

  5. PostgreSQL:różnica wydajności NIE W porównaniu z WYJĄTKIEM (edytowane nr 2)