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

Jak nastavit výstupní formát intervalu v PostgreSQL

Při práci s intervalem datový typ v PostgreSQL, můžete změnit způsob formátování intervalového výstupu.

Máte na výběr ze čtyř formátů, ve kterých mohou být vaše intervaly zobrazeny.

Výstupní formát typu interval lze nastavit na jeden z následujících stylů:

  • sql_standard
  • postgres
  • postgres_verbose
  • iso_8601

Výchozí styl je postgres .

Chcete-li změnit formát intervalu, použijte SET intervalstyle příkaz.

Příklady

Následující příklady demonstrují výstup make_interval() při použití různých výstupních stylů.

sql_standard

Tento styl odpovídá specifikaci standardu SQL pro řetězce intervalových literálů, pokud hodnota intervalu splňuje omezení standardu (buď pouze rok-měsíc nebo pouze den, bez míchání kladných a záporných složek).

V opačném případě bude výstup vypadat jako standardní řetězec literálu rok-měsíc následovaný řetězcem literálu dne a s přidanými explicitními znaménky, které odlišují intervaly smíšených znamének.

Zde je příklad s použitím roku a měsíce.

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

Výsledek:

1-2

Níže je uveden další příklad. Tentokrát specifikuji roky, měsíce, týdny, dny, hodiny, minuty a sekundy.

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

Výsledek:

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

postgres

postgress je výchozí nastavení.

Tento styl se shoduje s výstupem z vydání Postgresu před verzí 8.4, když DateStyle parametr byl nastaven na ISO .

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

Výsledek:

1 year 2 mons 25 days 05:06:07

postgres_verbose

Tento styl se shoduje s výstupem z vydání Postgresu před verzí 8.4, když DateStyle parametr byl nastaven na non-ISO výstup.

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

Výsledek:

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

iso_8601

Tento styl odpovídá „formátu s označeními“ popsanému v sekci 4.4.3.2 normy ISO 8601.

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

Výsledek:

P1Y2M25DT5H6M7S

  1. Jak funguje ORD() v MariaDB

  2. Jak můžete zjistit, zda hodnota v Oracle není číselná?

  3. Prohledejte všechny tabulky, všechny sloupce pro konkrétní hodnotu SQL Server

  4. Kontrolní body databáze na serveru SQL Server