Większość głównych RDBMS ma funkcje, które pozwalają nam wyodrębnić dzień, miesiąc i rok z wartości daty i godziny.
Niektóre RDBMS zapewniają wiele sposobów na zrobienie tego, a inne są bardziej ograniczone. Poniżej znajdują się przykłady wyodrębniania dnia, miesiąca i roku z wartości daty w niektórych z najpopularniejszych systemów RDBMS.
MySQL
MySQL ma kilka funkcji, których można użyć do wyodrębnienia dnia, miesiąca i roku z daty. Jednym z nich jest EXTRACT()
funkcja:
SELECT
EXTRACT(DAY FROM '2035-12-19') AS Day,
EXTRACT(MONTH FROM '2035-12-19') AS Month,
EXTRACT(YEAR FROM '2035-12-19') AS Year;
Wynik:
+------+-------+------+ | Day | Month | Year | +------+-------+------+ | 19 | 12 | 2035 | +------+-------+------+
W tym przypadku wyodrębniłem każdą część daty do własnego pola.
Jeśli chcesz, aby wszystkie części daty były zwracane w tym samym polu, DATE_FORMAT()
funkcja może zrobić to za Ciebie.
MySQL ma również kilka funkcji, które zwracają określone części daty z daty, takie jak DAY()
, MONTH()
, YEAR()
itp.
Zobacz Zwracanie dnia, miesiąca i roku w MySQL, aby uzyskać więcej przykładów.
Wyrocznia
Oracle ma TO_CHAR()
funkcja, której można użyć do wyodrębnienia części dat w ich własnych polach lub wszystkich w jednym polu. Oto przykład zwracania ich w poszczególnych polach:
SELECT
TO_CHAR(DATE '2035-09-26', 'Day') AS Day,
TO_CHAR(DATE '2035-09-26', 'DD') AS DD,
TO_CHAR(DATE '2035-09-26', 'Month') AS Month,
TO_CHAR(DATE '2035-09-26', 'YYYY') AS Year
FROM DUAL;
Wynik:
DAY DD MONTH YEAR ____________ _____ ____________ _______ Wednesday 26 September 2035
Zobacz pełną listę elementów formatu daty i godziny w Oracle, aby uzyskać listę elementów formatu, których można użyć do formatowania wartości daty i godziny za pomocą tej funkcji.
Oracle ma również funkcję EXTRACT()
funkcja, która działa jak funkcja MySQL o tej samej nazwie.
Serwer SQL
SQL Server ma dość duży zakres funkcji, które mogą zwracać części daty, takie jak dzień, miesiąc i rok.
DATEPART()
funkcja została zaprojektowana specjalnie do zwracania określonych części daty:
DECLARE @date date = '2045-07-03';
SELECT
DATEPART(day, @date) AS DAY,
DATEPART(weekday, @date) AS WEEKDAY,
DATEPART(month, @date) AS MONTH,
DATEPART(year, @date) AS YEAR;
Wynik:
+-------+-----------+---------+--------+ | DAY | WEEKDAY | MONTH | YEAR | |-------+-----------+---------+--------| | 3 | 2 | 7 | 2045 | +-------+-----------+---------+--------+
Podobną funkcją jest DATENAME()
, który może zwracać nazwy dnia i miesiąca w postaci ciągu.
SQL Server posiada również funkcje takie jak DAY()
, MONTH()
, YEAR()
itp., które zwracają konkretną część daty.
I nie zapominajmy o FORMAT()
funkcja, która jest idealna, jeśli chcesz zwrócić wszystkie części daty w tym samym polu.
Więcej przykładów można znaleźć w artykule 6 funkcji do pobierania dnia, miesiąca i roku z daty w SQL Server.
PostgreSQL
PostgreSQL ma kilka funkcji, które mogą zwracać części daty z dat.
Oto przykład DATE_PART()
funkcja:
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
PostgreSQL ma również funkcję EXTRACT()
funkcja, która zasadniczo robi to samo, z wyjątkiem nieco innej składni.
Oraz TO_CHAR()
funkcja może być użyta, jeśli chcesz zwrócić wiele części daty w tym samym polu.
SQLite
SQLite jest bardziej ograniczony, jeśli chodzi o funkcje daty i czasu. Jednak nadal możesz użyć STRFTIME()
funkcja do wyodrębnienia dnia, miesiąca i roku z daty:
SELECT STRFTIME('%d %m %Y', '2035-12-01');
Wynik:
01 12 2035
W tym przykładzie zwróciłem wszystkie części daty w tym samym polu. Ale to niekoniecznie jest wymagane. Jeśli chcesz, aby zostały zwrócone w różnych polach, możesz wywołać STRFTIME()
wiele razy, każdy z innym elementem formatu:
SELECT
strftime('%d', '2035-12-01') AS "Day",
strftime('%m', '2035-12-01') AS "Month",
strftime('%Y', '2035-12-01') AS "Year";
Wynik:
Day Month Year --- ----- ---- 01 12 2035
MariaDB
MariaDB zapewnia szeroki wybór funkcji, które mogą zwracać dzień, miesiąc i rok z wartości daty i godziny.
Oto przykład DATE_FORMAT()
funkcja:
SELECT DATE_FORMAT('2023-07-25', '%W, %D %M %Y');
Wynik:
+-------------------------------------------+ | DATE_FORMAT('2023-07-25', '%W, %D %M %Y') | +-------------------------------------------+ | Tuesday, 25th July 2023 | +-------------------------------------------+
Ta funkcja pozwala nam zwrócić wszystkie części daty w jednym polu (chociaż nie jest to wymagane – możesz równie łatwo zwrócić każdą część daty w innym polu, wywołując DATE_FORMAT()
wielokrotnie, za każdym razem z innym ciągiem formatu).
Podobnie jak niektóre inne, MariaDB ma również funkcję EXTRACT()
funkcja, która wyodrębnia podaną część daty.
Istnieje również wiele konkretnych funkcji dla każdej części daty, takich jak DAY()
, MONTH()
, YEAR()
itp.
Zobacz 11 funkcji, aby uzyskać dzień, miesiąc i rok z daty w MariaDB, aby uzyskać pełny opis.