sql >> Database teknologi >  >> RDS >> PostgreSQL

How to_char() virker i PostgreSQL

I Postgres, to_char() er en datatypeformateringsfunktion, der konverterer sit første argument til en streng.

Formatet af strengen bestemmes af det andet argument.

to_char() funktionen kan bruges til at udføre følgende konverteringer:

  • tidsstempel til streng
  • interval til streng
  • heltal til streng
  • ægte/dobbelt præcision til streng
  • numerisk til streng

Syntaks

Syntaksen ser sådan ud:

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

Hvor det første argument er værdien, der skal konverteres (i enhver af de angivne datatyper) og text er en formatstreng, som det første argument skal formateres med.

Eksempel

Her er et eksempel på formatering af en datoværdi:

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

Resultat:

Friday , 25 December 2020

I dette tilfælde formatstrengen Day, DD Month YYYY bestemmer, hvordan datoen formateres, når den returneres som en streng af to_char() .

Skabelonmønstre

Formatstrengen består af et eller flere skabelonmønstre .

I det forrige eksempel var min formatstreng Day, DD Month YYYY . Derfor bestod den af ​​følgende skabelonmønstre:

  • Day
  • DD
  • Month
  • YYYY

Jeg kunne have brugt mere eller mindre skabelonmønstre, og outputtet ville have været anderledes.

For eksempel kunne jeg have gjort følgende:

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

Resultat:

Friday

Alternativt kunne min formatstreng have bestået af en helt anden serie skabelonmønstre.

For eksempel:

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

Resultat:

Fri, 25 Dec 20

Skabelonmønstermodifikator

Du kan også tilføje skabelonmønstermodifikatorer til din formatstreng.

Resultatet vil være lidt anderledes afhængigt af den anvendte modifikator.

For eksempel præsenterer det følgende eksempel dagen i måneden som et ordenstal.

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

Resultat:

Friday , 25 December 2020

Dette er det samme som det første eksempel, men forskellen er, at jeg tilføjede den th skabelonmodifikator som et suffiks til DD skabelon mønster. Dette føjer ordenstalssuffikset til dagen i måneden.

Derfor ender vi med 25. i stedet for kun 25 .

For at understrege effekten af ​​skabelonmodifikatoren, se her, hvordan den ser ud, når den anvendes på forskellige værdier.

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

Resultat:

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

Jeg kunne tilføje en anden modifikator for at undertrykke de foranstillede nuller, hvis det kræves.

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

Resultat:

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

I dette tilfælde tilføjede jeg FM som er til "fill mode". Denne modifikator undertrykker indledende nuller og udfyldningsblanketter.

Numerisk

Det foregående eksempel kan også anvendes på numeriske værdier.

Men når du bruger numeriske værdier, skal du bytte D med enten 9 eller 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";

Resultat:

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

Liste over skabelonmønstre og modifikatorer

De faktiske skabelonmønstre, du kan bruge, afhænger af, om du formaterer en dato/tidsværdi eller et tal.

For en komplet liste over tilgængelige skabelonmønstre, se:

  • Skabelonmønstre og modifikatorer til formatering af dato/klokkeslæt
  • Skabelonmønstre og modifikatorer til numerisk formatering


  1. Sådan får du vist forespørgselsfejl i PDO PHP

  2. PostgreSQL - hvordan gengiver man dato i forskellige tidszoner?

  3. Opret en database i SQLite

  4. Opret ny tabel i eksisterende DB i separat SQLiteOpenHelper-klasse