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

3 funkcje, które pobierają dzień, miesiąc i rok z daty w PostgreSQL

PostgreSQL zapewnia nam kilka sposobów na określenie dnia, miesiąca i roku od daty.

Trzy funkcje, które natychmiast przychodzą na myśl, to; DATE_PART() , EXTRACT() i TO_CHAR() .

EXTRACT()

EXTRACT() funkcja pobiera podpola, takie jak rok, miesiąc, godzina lub minuta, część z wartości daty/czasu.

Przykład:

SELECT EXTRACT(YEAR FROM date '2035-10-30');

Wynik:

2035

Możemy zwrócić różne części daty w oddzielnych polach, wykonując trzy oddzielne wywołania tej funkcji:

SELECT 
    EXTRACT(DAY FROM date '2035-10-30') AS "Day",
    EXTRACT(DOW FROM date '2035-10-30') AS "DOW",
    EXTRACT(DOY FROM date '2035-10-30') AS "DOY",
    EXTRACT(MONTH FROM date '2035-10-30') AS "Month",
    EXTRACT(YEAR FROM date '2035-10-30') AS "Year";

Wynik:

 Day | DOW | DOY | Month | Year 
-----+-----+-----+-------+------
  30 |   2 | 303 |    10 | 2035

Tutaj zwróciłem dzień miesiąca, dzień tygodnia, dzień roku, miesiąc i rok od daty.

Zobacz, jak działa Extract() w PostgreSQL, aby uzyskać więcej przykładów i listę nazw pól, które mogą być zwrócone przez tę funkcję.

DATE_PART()

DATE_PART() funkcja jest odpowiednikiem EXTRACT() , ale z nieco inną składnią.

SELECT 
    DATE_PART('DAY', date '2035-10-30') AS "Day",
    DATE_PART('DOW', date '2035-10-30') AS "DOW",
    DATE_PART('DOY', date '2035-10-30') AS "DOY",
    DATE_PART('MONTH', date '2035-10-30') AS "Month",
    DATE_PART('YEAR', date '2035-10-30') AS "Year";

Wynik:

 Day | DOW | DOY | Month | Year 
-----+-----+-----+-------+------
  30 |   2 | 303 |    10 | 2035

Ta funkcja wymaga, aby pierwszy argument był podany jako ciąg, a przecinek oddziela dwa argumenty zamiast FROM słowo kluczowe.

TO_CHAR()

TO_CHAR() funkcja jest bardziej elastyczna, ponieważ może być wykorzystana do zapewnienia szerszej gamy wyjść. Na przykład, możemy użyć tej funkcji do zwrócenia dnia, miesiąca i roku w jednym polu:

SELECT TO_CHAR(date '2045-12-02', 'Day, DDth Month YYYY');

Wynik:

 Saturday , 02nd December  2045

Możemy użyć fm modyfikator szablonu, aby pominąć wszelkie dopełnienie, które można zastosować:

SELECT TO_CHAR(date '2165-04-01', 'fmDay, fmDDth fmMonth YYYY');

Wynik:

 Monday, 1st April 2165

Zwróć też uwagę, że th modyfikator szablonu jest wystarczająco sprytny, aby wiedzieć, czy st , nd , rd lub th należy dołączyć.

Oto przykład, który używa różnych wywołań TO_CHAR() aby wyprowadzić różne części daty w osobnych polach:

SELECT 
    TO_CHAR(date '2165-04-01', 'fmDay') AS "Day",
    TO_CHAR(date '2165-04-01', 'fmDD') AS "DD",
    TO_CHAR(date '2165-04-01', 'fmMonth') AS "Month",
    TO_CHAR(date '2165-04-01', 'YYYY') AS "YYYY";

Wynik:

  Day   | DD | Month | YYYY 
--------+----+-------+------
 Monday | 1  | April | 2165

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgresql :Połączenie odrzucone. Sprawdź, czy nazwa hosta i port są poprawne oraz czy postmaster akceptuje połączenia TCP/IP

  2. Java Crosstab — zapytanie przygotowanej instrukcji

  3. Postępy w aktualizacji online

  4. Rola nie istnieje i nie można utworzyć bazy danych podczas korzystania z PostgreSQL

  5. PostgreSQL nie akceptuje aliasów kolumn w klauzuli WHERE