Mysql
 sql >> Database >  >> RDS >> Mysql

Esiste MySQL equivalente a TIMESTAMP WITH TIME ZONE di Oracle?

No, dovrai dividere i dati in 2 colonne, una data/ora e l'altra contenente le informazioni sul fuso orario. Ma ciò che inserisci in quest'ultimo campo dipende da ciò che hai archiviato in Oracle:il tipo di dati TIMESTAMP CON FUSO ORARIO può contenere l'offset TZ e (facoltativamente) la regione del fuso orario. Ovviamente quest'ultimo è un requisito affinché la data e l'ora sia semanticamente corretta, ma IIRC Oracle non impone il popolamento di questi dati.

Poiché MySQL non ha il tipo di dati, sarà molto difficile scrivere la funzione MySQL per elaborarla:è molto più semplice creare una rappresentazione compatibile con MySQL in Oracle in cui il tipo di dati è supportato. Devi solo capire quali dati hai effettivamente e decidere come rappresentarli in MySQL. Per convenzione ciò significa memorizzarlo in UTC insieme alla TZ in una colonna separata, quindi convertirlo su selezione con la funzione convert_tz (sempre da UTC)