sql >> Databáze >  >> NoSQL >> MongoDB

Jak získat den, měsíc a rok z data v SQL

Většina hlavních RDBMS má funkce, které nám umožňují extrahovat den, měsíc a rok z hodnot datetime.

Některé RDBMS poskytují více způsobů, jak toho dosáhnout, a jiné jsou omezenější. Níže jsou uvedeny příklady extrahování dne, měsíce a roku z hodnot data v některých z nejpopulárnějších RDBMS.

MySQL

MySQL má několik funkcí, které lze použít k extrahování dne, měsíce a roku z data. Jedním z nich je EXTRACT() funkce:

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;

Výsledek:

+------+-------+------+
| Day  | Month | Year |
+------+-------+------+
|   19 |    12 | 2035 |
+------+-------+------+

V tomto případě jsem extrahoval každou část data do vlastního pole.

Pokud chcete, aby byly všechny části data vráceny ve stejném poli, DATE_FORMAT() funkce to může udělat za vás.

MySQL má také spoustu funkcí, které vracejí konkrétní části data z data, jako je DAY() , MONTH() , YEAR() , atd.

Další příklady naleznete v tématu Návrat dne, měsíce a roku v MySQL.

Oracle

Oracle má TO_CHAR() funkce, kterou lze použít k extrahování částí data v jejich vlastních polích nebo všech v jednom poli. Zde je příklad jejich vrácení v jednotlivých polích:

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;

Výsledek:

         DAY    DD        MONTH    YEAR 
____________ _____ ____________ _______ 
Wednesday    26    September    2035    

Seznam prvků formátu, které lze použít k formátování hodnot datetime pomocí této funkce, najdete v tomto Úplném seznamu prvků formátu Datetime v Oracle.

Oracle má také EXTRACT() funkce, která funguje jako stejnojmenná funkce MySQL.

SQL Server

SQL Server má poměrně širokou škálu funkcí, které mohou vrátit části data, jako je den, měsíc a rok.

DATEPART() funkce je navržena speciálně pro vrácení specifikovaných částí data:

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;

Výsledek:

+-------+-----------+---------+--------+
| DAY   | WEEKDAY   | MONTH   | YEAR   |
|-------+-----------+---------+--------|
| 3     | 2         | 7       | 2045   |
+-------+-----------+---------+--------+

Podobná funkce je DATENAME() , který může vrátit názvy dnů a měsíců jako řetězec.

SQL Server má také funkce jako DAY() , MONTH() , YEAR() , atd., které vracejí konkrétní část data.

A nesmíme zapomenout na FORMAT() funkce, která je perfektní, pokud chcete vrátit všechny části data ve stejném poli.

Další příklady viz 6 funkcí pro získání dne, měsíce a roku z data na serveru SQL.

PostgreSQL

PostgreSQL má několik funkcí, které mohou vrátit části data z dat.

Zde je příklad DATE_PART() funkce:

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";

Výsledek:

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

PostgreSQL má také EXTRACT() funkce, která v podstatě dělá totéž, až na trochu jinou syntaxi.

A TO_CHAR() funkci lze použít, pokud chcete vrátit více částí data ve stejném poli.

SQLite

SQLite je omezenější, pokud jde o funkce data a času. Stále však můžete použít STRFTIME() funkce pro extrahování dne, měsíce a roku z data:

SELECT STRFTIME('%d %m %Y', '2035-12-01');

Výsledek:

01 12 2035

V tomto příkladu jsem vrátil všechny části data ve stejném poli. Ale to není nezbytně nutné. Pokud je chcete vrátit v různých polích, můžete zavolat STRFTIME() vícekrát, každý s jiným prvkem formátu:

SELECT 
    strftime('%d', '2035-12-01') AS "Day",
    strftime('%m', '2035-12-01') AS "Month",
    strftime('%Y', '2035-12-01') AS "Year";

Výsledek:

Day  Month  Year
---  -----  ----
01   12     2035

MariaDB

MariaDB poskytuje velký výběr funkcí, které mohou vrátit den, měsíc a rok z hodnoty datetime.

Zde je příklad DATE_FORMAT() funkce:

SELECT DATE_FORMAT('2023-07-25', '%W, %D %M %Y');

Výsledek:

+-------------------------------------------+
| DATE_FORMAT('2023-07-25', '%W, %D %M %Y') |
+-------------------------------------------+
| Tuesday, 25th July 2023                   |
+-------------------------------------------+

Tato funkce nám umožňuje vrátit všechny části data v jednom poli (ačkoli to není povinné – stejně snadno můžete vrátit každou část data v jiném poli voláním DATE_FORMAT() vícekrát, pokaždé s jiným formátovacím řetězcem).

A stejně jako některé další má MariaDB také EXTRACT() funkce, která extrahuje danou část data.

A existuje také velký rozsah specifických funkcí pro každou část data, například DAY() , MONTH() , YEAR() , atd

Úplný přehled najdete v 11 funkcích pro získání dne, měsíce a roku z data v MariaDB.


  1. Jak implementovat trigger pro redis datastore?

  2. MongoDB a složené primární klíče

  3. Optimalizace výkonu Nodejs

  4. Jak porovnat MongoDB s YCSB?