PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak to_char() działa w PostgreSQL

W Postgresie to_char() to funkcja formatowania typu danych, która konwertuje swój pierwszy argument na łańcuch.

Format ciągu jest określony przez drugi argument.

to_char() funkcja może być użyta do wykonania następujących konwersji:

  • znacznik czasu do ciągu
  • odstęp do ciągu
  • liczba całkowita do ciągu
  • rzeczywista/podwójna precyzja do łańcucha
  • liczba do ciągu

Składnia

Składnia wygląda tak:

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

Gdzie pierwszy argument to wartość do konwersji (w dowolnym z wymienionych typów danych) i text jest ciągiem formatu, za pomocą którego należy sformatować pierwszy argument.

Przykład

Oto przykład formatowania wartości daty:

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

Wynik:

Friday , 25 December 2020

W tym przypadku ciąg formatu Day, DD Month YYYY określa sposób formatowania daty, gdy jest zwracana jako ciąg przez to_char() .

Wzorce szablonów

Ciąg formatu składa się z co najmniej jednego wzoru szablonu .

W poprzednim przykładzie mój ciąg formatu to Day, DD Month YYYY . Dlatego składał się z następujących wzorców szablonów:

  • Day
  • DD
  • Month
  • YYYY

Mogłem użyć mniej lub więcej szablonów, a wynik byłby inny.

Na przykład mógłbym zrobić co następuje:

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

Wynik:

Friday

Ewentualnie mój ciąg formatu może składać się z zupełnie innej serii wzorców szablonów.

Na przykład:

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

Wynik:

Fri, 25 Dec 20

Modyfikatory wzorców szablonów

Możesz również dodać modyfikatory wzorca szablonu do ciągu formatu.

Wynik będzie nieco inny w zależności od użytego modyfikatora.

Na przykład poniższy przykład przedstawia dzień miesiąca jako liczbę porządkową.

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

Wynik:

Friday , 25 December 2020

To jest to samo, co w pierwszym przykładzie, ale różnica polega na tym, że dodałem th modyfikator szablonu jako przyrostek do DD wzór szablonu. Dodaje to przyrostek liczby porządkowej do dnia miesiąca.

Dlatego kończymy na 25. zamiast zaledwie 25 .

Aby podkreślić efekt modyfikatora szablonu, oto jak wygląda po zastosowaniu do różnych wartości.

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

Wynik:

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

W razie potrzeby mógłbym dodać kolejny modyfikator, aby pominąć wiodące zera.

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

Wynik:

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

W tym przypadku dodałem FM co oznacza „tryb napełniania”. Ten modyfikator eliminuje wiodące zera i odstępy dopełniania.

Liczba

Poprzedni przykład można również zastosować do wartości liczbowych.

Jednak używając wartości numerycznych, będziesz musiał zamienić D z 9 lub 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";

Wynik:

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

Lista wzorców i modyfikatorów szablonów

Rzeczywiste wzorce szablonów, których możesz użyć, zależą od tego, czy formatujesz wartość daty/godziny, czy liczbę.

Aby zobaczyć pełną listę dostępnych wzorców szablonów, zobacz:

  • Wzorce i modyfikatory szablonów do formatowania daty/godziny
  • Wzorce i modyfikatory szablonów do formatowania liczb


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wydruk tabeli nie pasuje do rozmiaru strony

  2. Nie można wybrać z klauzuli UPDATE RETURNING w postgres

  3. Jak wyłączyć integralność referencyjną w Postgres 8.2?

  4. Dlaczego zapytanie nie zapisuje się w pliku csv, podczas gdy w konsoli postgresql wygląda to normalnie?

  5. dynamiczne postgres zapytania