sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur man ställer in intervallutdataformatet i PostgreSQL

När du arbetar med intervallet datatyp i PostgreSQL kan du ändra hur intervallutgången formateras.

Du kan välja mellan fyra format som dina intervaller kan matas ut i.

Utdataformatet för intervalltypen kan ställas in på en av följande stilar:

  • sql_standard
  • postgres
  • postgres_verbose
  • iso_8601

Standardstilen är postgres .

För att ändra ditt intervallformat, använd SET intervalstyle kommando.

Exempel

Följande exempel visar utdata från make_interval() när du använder de olika utmatningsstilarna.

sql_standard

Den här stilen överensstämmer med SQL-standardens specifikation för intervallliterala strängar, om intervallvärdet uppfyller standardens begränsningar (antingen endast år-månad eller endast dagtid, utan blandning av positiva och negativa komponenter).

Annars ser utdata ut som en bokstavlig standardsträng för år och månad följt av en bokstavlig sträng dagtid, med explicita tecken tillagda för att otydliga intervall med blandade tecken.

Här är ett exempel som använder år-månad.

SET intervalstyle = 'sql_standard';
SELECT make_interval(years => 1, months => 2);

Resultat:

1-2

Nedan är ett annat exempel. Den här gången anger jag år, månader, veckor, dagar, timmar, minuter och sekunder.

SET intervalstyle = 'sql_standard';
SELECT make_interval(1, 2, 3, 4, 5, 6, 7);

Resultat:

+1-2 +25 +5:06:07

postgres

postgress är standardinställningen.

Den här stilen matchar utdata från Postgres-utgåvor före 8.4 när DateStyle parametern sattes till ISO .

SET intervalstyle = 'postgres';
SELECT make_interval(1, 2, 3, 4, 5, 6, 7);

Resultat:

1 year 2 mons 25 days 05:06:07

postgres_verbose

Den här stilen matchar utdata från Postgres-utgåvor före 8.4 när DateStyle parametern ställdes till icke-ISO utdata.

SET intervalstyle = 'postgres_verbose';
SELECT make_interval(1, 2, 3, 4, 5, 6, 7);

Resultat:

@ 1 year 2 mons 25 days 5 hours 6 mins 7 secs

iso_8601

Denna stil matchar "formatet med beteckningar" som beskrivs i avsnitt 4.4.3.2 i ISO 8601-standarden.

SET intervalstyle = 'iso_8601';
SELECT make_interval(1, 2, 3, 4, 5, 6, 7);

Resultat:

P1Y2M25DT5H6M7S

  1. Konvertera 'tid' till 'smalldatetime' i SQL Server (T-SQL-exempel)

  2. Avmystifierar CXPACKET- och CXCONSUMER-vänttyper i SQL Server

  3. MINUTE() Exempel – MySQL

  4. Är det möjligt att tvinga radnivålåsning i SQL Server?