sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur man konverterar en sträng till en tidsstämpel i PostgreSQL

Problem:

Du vill konvertera en sträng som innehåller information om datum och tid till en tidsstämpel i PostgreSQL.

Låt oss konvertera en sträng som innehåller information om datum, tid och tidszon till datatypen timestamptz.

Lösning:

Vi använder TO_TIMESTAMP() fungera. Här är frågan du skulle skriva:

SELECT TO_TIMESTAMP('2018/08/27/15:23:45', 'YYYY/MM/DD/HH24:MI:ss')
          AS  new_timestamptz;

Här är resultatet av frågan:

new_timestamptz
2018-08-27 15:23:45+02

Diskussion:

Använd PostgreSQL-funktionen TO_TIMESTAMP() när du vill konvertera en sträng som innehåller datum- och tidsdata till tidsstämpeln data typ. Den här funktionen tar två argument:en sträng som innehåller ett datum och en tid (i vårt exempel, texten '2018/08/27/15:23:45 ') och inmatningsformatet (i vårt exempel, 'YYYY/MM/DD/HH24:MI:ss ’). Inmatningsformatet anger hur tecknen i strängen ska konverteras. Här är huvudelementen från mönstret ovan:

  • ÅÅÅÅ representerar ett 4-siffrigt år.
  • MM representerar en tvåsiffrig månad.
  • DD representerar en tvåsiffrig dag i månaden.
  • HH24 representerar en tvåsiffrig timme (från 00 till 23).
  • MI representerar en tvåsiffrig minut (från 00 till 59).
  • ss representerar en tvåsiffrig sekund (från 00 till 59).

Observera att vi använder snedstreck (/) som datumdelavgränsare och kolon (:) som tidsdelavgränsare. Du kan hitta en komplett lista över datetime-mönsterelement i PostgreSQL-dokumentationen.

Observera att inmatningsformatet är en sträng. Funktionen TO_TIMESTAMP() returnerar en timestamptz värde med tidszonsinformation.

I vårt exempel, texten datum och tid '2018/08/27/15:23:45 ' konverterades till tidsstämpel värde 2018-08-27 15:23:45+02 . tidsstämpeln datatypen är mer läsbar.


  1. Är mysql_real_escape_string() trasig?

  2. hur man använder dbms_scheduler för att köra jobbet var 30:e minut

  3. Returnera en procentandel av en resultatuppsättning i SQL Server

  4. Vad är meningen med SELECT ... FOR XML PATH(' '),1,1)?