sql >> Databasteknik >  >> RDS >> PostgreSQL

Postgres UTC datumformat &epok cast, tecken inversion

Detta

1970-01-01 00:00:00+01

är en ISO 8601 tidsstämpel med en +1 timmes offset och +1 betyder öster om Greenwich. Offseten i dessa

01-01-1970 00:00:00 UTC+01
1970-01-01 00:00:00 UTC+01
1970-01-01 00:00:00 XXX+01
1970-01-01 00:00:00 HAHA+01
1970-01-01 00:00:00 Pancakes+01

kommer att tolkas som tidszoner i POSIX-stil där +1 betyder väst från Greenwich:

PostgreSQL accepterar tidszonspecifikationer i POSIX-stil av formen STDoffset eller STDoffsetDST, där STD är en zonförkortning, offset är en numerisk offset i timmar västerut från UTC

och de kommer till och med med en varning:

Man bör vara försiktig med att tidszonsfunktionen i POSIX-stil kan leda till att man i tysthet accepterar falsk inmatning, eftersom det inte finns någon kontroll på rimligheten av zonförkortningarna. Till exempel, SET TIMEZONE TO FOOBAR0 kommer att fungera, vilket gör att systemet effektivt använder en ganska märklig förkortning för UTC. En annan fråga att tänka på är att i POSIX-tidszonnamn används positiva förskjutningar för platser väster om Greenwich. Överallt annars följer PostgreSQL ISO-8601-konventionen att positiva tidszonförskjutningar är öster om Greenwich.

Notera skillnaden mellan väst och öst.




  1. SQLite-minnesproblem med singleton-metoden

  2. Det effektivaste sättet att lagra IP-adress i MySQL

  3. JSON_STORAGE_SIZE() – Hitta lagringsstorleken för ett JSON-dokument i MySQL

  4. Hämta poster där json-kolumnnyckeln är null