sql >> Databáze >  >> RDS >> PostgreSQL

3 Funkce, které získávají den, měsíc a rok z data v PostgreSQL

PostgreSQL nám poskytuje několik způsobů, jak získat den, měsíc a rok z data.

Tři funkce, které vás okamžitě napadnou, jsou; DATE_PART() , EXTRACT() a TO_CHAR() .

EXTRACT()

EXTRACT() funkce načítá podpole, jako je rok, měsíc, hodina nebo minuta, část z hodnoty data/času.

Příklad:

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

Výsledek:

2035

Můžeme vrátit různé části data v samostatných polích provedením tří samostatných volání této funkce:

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

Výsledek:

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

Zde jsem z data vrátil den v měsíci, den v týdnu, den v roce, měsíc a rok.

Další příklady a seznam názvů polí, která může tato funkce vrátit, najdete v části Jak funguje Extract() v PostgreSQL.

DATE_PART()

DATE_PART() funkce je ekvivalentem EXTRACT() , ale s mírně odlišnou syntaxí.

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

Tato funkce vyžaduje, aby byl první argument uveden jako řetězec a čárka oddělovala dva argumenty namísto FROM klíčové slovo.

TO_CHAR()

TO_CHAR() Funkce je flexibilnější v tom, že ji lze použít k poskytování širší škály výstupů. Tuto funkci můžeme například použít k vrácení dne, měsíce a roku v jednom poli:

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

Výsledek:

 Saturday , 02nd December  2045

Můžeme použít fm modifikátor šablony pro potlačení všech výplní, které lze použít:

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

Výsledek:

 Monday, 1st April 2165

Všimněte si také, že th modifikátor šablony je dostatečně chytrý, aby věděl, zda st , nd , rd , nebo th by měl být připojen.

Zde je příklad, který používá různá volání TO_CHAR() pro výstup různých částí data do samostatných polí:

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

Výsledek:

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

  1. Jak načíst data JSON z MySQL?

  2. Oprava „ERROR 1054 (42S22):Neznámý sloupec „…“ v „klauzuli objednávky“ při použití UNION v MySQL

  3. Jak používat GROUP BY ke zřetězení řetězců v SQL Server?

  4. Nadměrná aktivita MySQL