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

Jak to_char() funguje v PostgreSQL

V Postgresu to_char() je funkce formátování datového typu, která převádí svůj první argument na řetězec.

Formát řetězce je určen druhým argumentem.

to_char() funkci lze použít k provedení následujících převodů:

  • časové razítko do řetězce
  • interval do řetězce
  • celé číslo na řetězec
  • skutečná/dvojitá přesnost řetězce
  • číselné na řetězec

Syntaxe

Syntaxe vypadá takto:

to_char(timestamp, text)
to_char(interval, text)
to_char(int, text)
to_char(double precision, text)
to_char(numeric, text)

Kde první argument je hodnota, která se má převést (v kterémkoli z uvedených datových typů) a text je formátovací řetězec, kterým se formátuje první argument.

Příklad

Zde je příklad formátování hodnoty data:

SELECT to_char(date '2020-12-25', 'Day, DD Month YYYY');

Výsledek:

Friday , 25 December 2020

V tomto případě formátovací řetězec Day, DD Month YYYY určuje, jak je datum naformátováno, když je vráceno jako řetězec pomocí to_char() .

Vzory šablon

Formátovací řetězec se skládá z jednoho nebo více vzorů šablon .

V předchozím příkladu byl můj formátovací řetězec Day, DD Month YYYY . Proto se skládal z následujících vzorů šablon:

  • Day
  • DD
  • Month
  • YYYY

Mohl jsem použít více či méně šablon šablon a výstup by byl jiný.

Mohl jsem například udělat následující:

SELECT to_char(date '2020-12-25', 'Day');

Výsledek:

Friday

Alternativně by můj formátovací řetězec mohl sestávat z úplně jiné řady vzorů šablon.

Například:

SELECT to_char(date '2020-12-25', 'Dy, DD Mon YY');

Výsledek:

Fri, 25 Dec 20

Modifikátory vzoru šablon

Do formátovacího řetězce můžete také přidat modifikátory vzoru šablony.

Výsledek se bude mírně lišit v závislosti na použitém modifikátoru.

Například následující příklad představuje den v měsíci jako pořadové číslo.

SELECT to_char(date '2020-12-25', 'Day, DDth Month YYYY');

Výsledek:

Friday , 25 December 2020

Toto je stejné jako první příklad, ale rozdíl je v tom, že jsem přidal th modifikátor šablony jako přípona k DD vzor šablony. Tím se ke dni v měsíci připojí přípona pořadového čísla.

Proto skončíme na 25. místo pouhých 25 .

Chcete-li zdůraznit účinek modifikátoru šablony, zde je návod, jak vypadá při použití na různé hodnoty.

SELECT 
  to_char(date '2020-12-01', 'DDth') AS "1",
  to_char(date '2020-12-02', 'DDth') AS "2",
  to_char(date '2020-12-03', 'DDth') AS "3",
  to_char(date '2020-12-04', 'DDth') AS "4";

Výsledek:

  1   |  2   |  3   |  4   
------+------+------+------
 01st | 02nd | 03rd | 04th

V případě potřeby bych mohl přidat další modifikátor pro potlačení úvodních nul.

SELECT 
  to_char(date '2020-12-01', 'FMDDth') AS "1",
  to_char(date '2020-12-02', 'FMDDth') AS "2",
  to_char(date '2020-12-03', 'FMDDth') AS "3",
  to_char(date '2020-12-04', 'FMDDth') AS "4";

Výsledek:

  1  |  2  |  3  |  4  
-----+-----+-----+-----
 1st | 2nd | 3rd | 4th

V tomto případě jsem přidal FM což je pro „režim plnění“. Tento modifikátor potlačuje úvodní nuly a výplňové mezery.

Číselné

Předchozí příklad lze také použít na číselné hodnoty.

Při použití číselných hodnot však budete muset zaměnit D buď 9 nebo 0 .

SELECT 
  to_char(1, '9th') AS "1",
  to_char(2, '9th') AS "2",
  to_char(3, '9th') AS "3",
  to_char(4, '9th') AS "4";

Výsledek:

  1   |  2   |  3   |  4   
------+------+------+------
  1st |  2nd |  3rd |  4th

Seznam vzorů a modifikátorů šablon

Skutečné vzory šablon, které můžete použít, závisí na tom, zda formátujete hodnotu data/času nebo číslo.

Úplný seznam dostupných vzorů šablon naleznete na adrese:

  • Vzory a modifikátory šablon pro formátování data/času
  • Vzory a modifikátory šablon pro číselné formátování


  1. Předávání seznamu<> do SQL uložené procedury

  2. Příklady DAYOFMONTH() – MySQL

  3. Systém resetování hesla v PHP

  4. SEC_CASE_SENSTIVE_LOGON za 12c