sql >> Databasteknik >  >> RDS >> Mysql

Finns det MySQL som motsvarar Oracles TIMESTAMP WITH TIME ZONE?

Nej, du måste dela upp data i två kolumner, en per datum och tid och den andra innehåller tidszonsinformationen. Men vad du lägger i det senare fältet beror på vad du har lagrat i Oracle - TIMESTAMP WITH TIME ZONE Datatype kan innehålla TZ-offset och (valfritt) tidszonsregionen. Uppenbarligen är det sistnämnda ett krav för att datum och tid ska vara semantiskt korrekt, men IIRC Oracle tvingar inte till att denna data fylls i.

Eftersom MySQL inte har datatypen kommer det att vara mycket svårt att skriva MySQL-funktionen för att bearbeta den - det är mycket enklare att skapa en MySQL-kompatibel representation i Oracle där datatypen stöds. Du behöver bara räkna ut vilken data du faktiskt har och bestämma hur du vill representera den i MySQL. Av konvention innebär det att lagra den i UTC tillsammans med TZ i en separat kolumn, sedan konvertera den vid val med funktionen convert_tz (alltid från UTC)



  1. Lagra alla dataändringar med alla detaljer (som Stackoverflow)

  2. postgresql syntax för främmande nyckel

  3. Guide till designdatabas för kalenderhändelse och påminnelse i MySQL

  4. Mysql-kryptering/lagring av känslig data,