MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak uzyskać dzień, miesiąc i rok z daty w SQL?

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.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Grupa MongoDB i suma z identyfikatorem jako kluczem

  2. Jak poprawnie zwiększyć liczbę dat w mongoDB?

  3. Duże przepływy danych przy użyciu pand

  4. Mongoose:jakie są różnice między Model.create i Collection.insert

  5. MongoDB $cond