sql >> Database >  >> RDS >> PostgreSQL

Hoe tekenreeks naar tijdstempel te converteren zonder tijdzone

Tekenreeksrepresentatie van een timestamp (=timestamp without time zone ) hangt af van uw landinstellingen. Om dubbelzinnigheden die leiden tot gegevensfouten of het ophoesten van een uitzondering door Postgres te voorkomen, hebt u daarom twee opties:

1.) Gebruik ISO 8601-indeling , die hetzelfde werkt met elke locale of DateStyle instelling:

'2013-08-20 14:52:49'

Mogelijk moet u de letterlijke tekenreeks expliciet casten waar het gegevenstype niet uit de context kan worden afgeleid, afhankelijk van de gebruikssituatie:

'2013-08-20 14:52:49'::timestamp

2.) Converteer de string naar timestamp met behulp van to_timestamp() met een bijpassend sjabloonpatroon:

to_timestamp('20/8/2013 14:52:49', 'DD/MM/YYYY hh24:mi:ss')

Dit retourneert timestamptz , uitgaande van de huidige tijdzone-instelling. Typisch (zoals in een opdracht) wordt het type dienovereenkomstig gedwongen. Voor timestamp , dit betekent dat de tijdverschuiving wordt afgekapt en u de verwachte waarde krijgt. Nogmaals, als het doeltype niet uit de context kan worden afgeleid, moet u mogelijk expliciet casten:

to_timestamp('20/8/2013 14:52:49', 'DD/MM/YYYY hh24:mi:ss')::timestamp

Omdat dat gewoon de tijdsverschuiving weghaalt, resulteert dit in de verwachte waarde. Of gebruik de AT TIME ZONE bouwen met een tijdzone naar keuze:

to_timestamp('20/8/2013 14:52:49', 'DD/MM/YYYY hh24:mi:ss') AT TIME ZONE 'UTC'

Hoewel de doeltijdzone hetzelfde is als uw huidige timezone instelling vindt er geen transformatie plaats. Anders wordt de resulterende tijdstempel dienovereenkomstig getransponeerd. Verder lezen:

  • Tijdzones volledig negeren in Rails en PostgreSQL


  1. Wat is de beste manier om een ​​Django DB van SQLite naar MySQL te migreren?

  2. Waarschuwing:mysql_fetch_array() verwacht dat parameter 1 resource is, boolean gegeven in

  3. DevOps Database Woordenlijst voor de MySQL-beginner

  4. Shapefiles importeren in postgresql in linux met pgadmin 4