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

Zrozumienie typów i funkcji dat PostgreSQL (przykłady)

W tym artykule przyjrzymy się pracy z datami w PostgreSQL, w tym różnymi typami i formatami danych dat, ich funkcjami oraz sposobami radzenia sobie z nimi w codziennej rutynie. Do zilustrowania przykładów użyjemy dbForge Studio dla PostgreSQL.

Możesz używać dat i znaczników czasu do analizy danych i przechowywania danych, ponieważ pozwalają one określić, kiedy zdarzenie rzeczywiście miało miejsce. Trudne w przypadku dat jest to, że ich formaty różnią się w różnych krajach, więc może to być dość trudne zadanie dla początkujących w zarządzaniu bazami danych. Typ danych i format kolumny daty powinien być zawsze zgodny z informacjami wprowadzonymi przez użytkownika. Ponadto należy zmodyfikować format daty, aby odpowiadał preferencjom użytkowników. Postgres obsługuje szeroką gamę formatów danych.

Zawartość

  • Przegląd typów danych PostgreSQL DATE
  • Używanie bieżącej daty jako wartości domyślnej
  • Funkcje Postgres DATE
  • Korzystanie z funkcji TERAZ(), aby uzyskać aktualną datę
  • Za pomocą funkcji TO_CHAR() – wypisz wartość daty w określonym formacie
  • Użycie operatora minus, aby uzyskać odstęp między dwiema datami
  • Korzystanie z funkcji AGE(), aby uzyskać różnicę dat w latach, miesiącach i dniach
  • Użycie funkcji EXTRACT() do pobrania roku, kwartału, miesiąca, tygodnia, dnia z wartości daty
  • Używanie TO_TIMESTAMP() do konwersji ciągu znaków na znacznik czasu
  • Podsumowanie

Przegląd typów danych PostgreSQL DATE

DATE typ danych w PostgreSQL służy do przechowywania dat w formacie RRRR-MM-DD (np. 2022-03-24). Potrzebuje 4 bajtów do przechowywania wartości daty w kolumnie. Zauważ, że najwcześniejsza możliwa data to 4713 pne, a najnowsza możliwa data to 5874897 AD.

Bardzo ważne jest zachowanie czytelności kodu na etapie jego pisania. dbForge Studio dla PostgreSQL może pochwalić się wygodnym i intuicyjnym formaterem PostgreSQL. Dbając o formatowanie kodu, sprawdzanie składni i uzupełnianie kodu, wbudowana funkcja formatowania Postgres SQL w dbForge Studio dla PostgreSQL pozwoli Ci skupić się również na radzeniu sobie z typem danych DATE.

Używanie bieżącej daty jako wartości domyślnej

Domyślna wartość w DATE kolumnę w bazie danych Postgres można ustawić za pomocą słowa kluczowego DEFAULT CURRENT DATE , jak w poniższym skrypcie:

CREATE TABLE myevents (
event_id serial PRIMARY KEY,
event_details VARCHAR (255) NOT NULL,
event_date DATE NOT NULL DEFAULT CURRENT_DATE
);
INSERT INTO myevents (event_details)
VALUES('Meeting the client ABC');
 
SELECT * FROM myevents;

Jak widać, wartość [data wydarzenia] kolumna jest automatycznie wstawiana przez serwer PostgreSQL przy użyciu bieżącej daty systemowej w formacie RRRR-MM-DD.

Funkcje Postgres DATE

Czasami krytyczna jest zmiana formatu daty lub obliczenie wartości w tabeli PostgreSQL. Być może będziemy musieli to zrobić dla użytkowników z różnych stref czasowych na całym świecie. W tym przypadku kluczowe znaczenie mają funkcje SQL.

Korzystanie z funkcji NOW(), aby uzyskać aktualną datę

SELECT now();

Możesz użyć podwójnych dwukropków (::), aby rzucić DATETIME wartość na DATE wartość jak pokazano poniżej:

Aktualny znacznik czasu systemu jest zwracany przez NOW() funkcjonować. Składnia jest następująca:

SELECT now()::date;

Za pomocą funkcji TO_CHAR() – wypisz wartość daty w określonym formacie

Aby przedstawić dane wyjściowe wartości daty Postgres w określonym formacie, TO_CHAR() przydaje się funkcja. Składnia jest następująca:

TO_CHAR(expression, format)

Istnieją dwa parametry akceptowane przez TO_CHAR() funkcja:

  • Data wprowadzenia :Data do przekonwertowania na określony format.
  • Format daty :Symbol zastępczy dla nowej specyfikacji formatu daty.

Zobaczmy, jak przekonwertować istniejące wartości dat z [MyEvents] tabeli w formacie DD-MM-RRRR.

SELECT event_details,event_date as ExistingDateformat,
to_char(event_date,'DD-MM-YYYY') As NewDateFormat FROM myevents;

Aby przekonwertować bieżący znacznik czasu na preferowany format, możesz połączyć TO_CHAR() i NOW() funkcje.

SELECT TO_CHAR(NOW() :: DATE, 'dd-mm-yyyy');

Używanie operatora minus, aby uzyskać odstęp między dwiema datami

Aby obliczyć różnicę między dwiema datami, użyj operatora minus (-). Poniższe zapytanie zawiera okres między obecnym znacznikiem czasu a [eventdate] z Moich wydarzeń stół.

SELECT event_date,now() as currentdate,
now()-event_date as Interval FROM myevents
where event_id=2;

Możesz również wybrać przedział czasu, w którym data ma być zwracana po upływie określonego czasu. Spójrz na poniższe zapytanie:

SELECT (NOW() + interval '3 hour') AS threehourslater,
(NOW() + interval '2 day') AS Twodaylater,
(NOW() - interval '2 year') AS TwoYearBefore,
(event_date- interval '1 year') as eventdatedifference
from myevents;

Korzystanie z funkcji WIEK(), aby uzyskać różnicę dat w latach, miesiącach i dniach

Za pomocą AGE() funkcji, możesz uzyskać różnicę dat w latach, miesiącach i dniach. Ta funkcja może być wykorzystana do określenia wieku osoby. Pierwsza wartość daty jest odejmowana od drugiej wartości daty za pomocą tej funkcji, która akceptuje dwie daty wejściowe. Gdy wartości w skrypcie funkcji są odwrócone, wynikiem jest wartość ujemna.

Sprawdźmy wiek osoby, której data urodzenia to 09.10.1995. Składnia jest następująca:

SELECT current_date,
AGE(timestamp '1995-10-09'::timestamp) as EmpAge;

Użycie funkcji EXTRACT() do pobrania roku, kwartału, miesiąca, tygodnia, dnia z wartości daty

EXTRACT() funkcja zwraca dzień, tydzień, miesiąc, rok i kwartał z określonej wartości daty.

Wyodrębnij rok:

SELECT EXTRACT(YEAR FROM TIMESTAMP '2022-04-09 10:30:15') as year;

Wyodrębnij miesiąc:

SELECT EXTRACT(Month FROM TIMESTAMP '2022-04-09 10:30:15') as Month;

Wyodrębnij ćwiartkę:

SELECT EXTRACT(QUARTER FROM TIMESTAMP '2022-04-09 10:30:15') as QUARTER;

Wyodrębnij dzień tygodnia:

SELECT EXTRACT(DOW FROM TIMESTAMP '2022-04-09 10:30:15') as DOW;

Wyodrębnij dzień roku:

SELECT EXTRACT(DOY FROM TIMESTAMP '2022-04-09 10:30:15') as DOY;

Pamiętaj, że dbForge Studio wyświetla wyniki wykonania zapytania w osobnej karcie.

EXTRACT() funkcja może być łatwo łączona z INTERVAL . Załóżmy, że chcemy ustawić interwał na 5 lat 8 miesięcy 23 dni 08 godzin 10 minut i 20 sekund. Poszczególne wartości są zwracane przez EXTRACT funkcja.

SELECT EXTRACT(YEAR
FROM INTERVAL '5 years 8 month 23 days 08 hours 10 minutes 20 seconds' ),
EXTRACT(Month
FROM INTERVAL '5 years 8 month 23 days 08 hours 10 minutes 20 seconds' ),
EXTRACT(Day
FROM INTERVAL '5 years 8 month 23 days 08 hours 10 minutes 20 seconds' ),
EXTRACT(hour
FROM INTERVAL '5 years 8 month 23 days 08 hours 10 minutes 20 seconds' ),
EXTRACT(Minute
FROM INTERVAL '5 years 8 month 23 days 08 hours 10 minutes 20 seconds' );

Korzystanie z TO_TIMESTAMP() do konwersji ciągu na znacznik czasu

Możesz zachować wartości dat w UTC (uniwersalny koordynator czasu) i w razie potrzeby zmienić strefę czasową, jeśli chcesz przekonwertować znacznik czasu na inną strefę czasową.

SELECT * FROM pg_timezone_names;

Aby sprawdzić aktualną strefę czasową, użyj SHOW TIMEZONE polecenie.

Możesz użyć AT TIME ZONE aby otrzymać dane wyjściowe dla wybranej strefy czasowej, wybierając żądaną wartość strefy czasowej z pg_timezone_names tabela.

SELECT '2022-04-09 10:36:19'::timestamp AT TIME ZONE 'America/Los_Angeles';

AT TIME ZONE pozwala mieć różne wyjścia stref czasowych.

SELECT '2022-04-09 10:36:19'::timestamp AT TIME ZONE 'America/Washington';
SELECT '2022-04-09 10:36:19'::timestamp AT TIME ZONE 'Asia/Beijing';
SELECT '2022-04-09 10:36:19'::timestamp AT TIME ZONE 'Europe/Kyiv';

Podsumowanie

Podsumowując, PostgreSQL DATE typ danych jest bardzo ważny i przydatny podczas przechowywania dat i znaczników czasu w tabelach, dlatego jest dość powszechny w relacyjnej bazie danych. Zakres ich zastosowania jest niezwykle szeroki, dlatego tak ważne jest, aby były one czytelne dla każdego użytkownika w dowolnym kraju i strefie czasowej. Dzięki różnym funkcjom Postgresa łatwo jest zaspokoić potrzeby użytkowników, ponieważ możesz zmieniać daty, aby mogły być używane w określonej strefie czasowej, z określonym formatem i innymi szczegółami, które znacznie ułatwiają pracę z takimi danymi. Wreszcie, jeśli szukasz idealnego połączenia intuicyjnego interfejsu graficznego i rozszerzonego wiersza poleceń, który może sprawić, że praca z DATE jeszcze przyjemniejszy typ danych, przyda się dbForge Studio dla PostgreSQL.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Włączanie obsługi PostgreSQL w PHP w systemie Mac OS X

  2. Jak stworzyć widok w PostgreSQL

  3. ZAMÓW WEDŁUG listy wartości IN

  4. Mapowanie hibernacji między enum PostgreSQL i enum w Javie

  5. Jak uzyskać aktualną nazwę strefy czasowej w Postgres 9.3?