2011-11-28 8 views
5

Esiste MySQL in Oracle TIMESTAMP WITH TIME ZONE?Esiste MySQL in Oracle TIMESTAMP WITH TIME ZONE?

Ho bisogno di mappare una tabella Oracle, che ha alcune colonne con quel tipo di dati, in una tabella MySQL ma non riesco a trovare un modo semplice per farlo senza ricorrere ad alcune funzioni MySQL.

Grazie e cordiali saluti.

+0

Risposta breve no, credo. Ci sono piani per aggiungere tali tipi di dati nella futura versione di MariaDB (un fork di MySQL) ma nessuna idea su un programma. –

+0

Piani per MariaDB 5.6: http://kb.askmonty.org/en/plans-for-56 –

risposta

2

No, è necessario dividere i dati in 2 colonne, una un datetime e l'altra in cui sono contenute le informazioni sul fuso orario. Ma ciò che si inserisce in quest'ultimo campo dipende da ciò che è stato memorizzato in Oracle: il datatype TIMESTAMP WITH TIME ZONE può contenere l'offset TZ e (facoltativamente) l'area del fuso orario. Ovviamente il secondo requisito è che l'ora della data sia semanticamente corretta, ma IIRC Oracle non impone l'inserimento di questi dati.

senza ricorrere ad alcune funzioni di MySQL

Poiché MySQL non ha il tipo di dati, che sarà molto difficile da scrivere funzione di MySQL per l'elaborazione - è molto più semplice per creare un MySQL compatibile rappresentazione in Oracle in cui è supportato il tipo di dati. Hai solo bisogno di capire quali dati hai effettivamente e decidere come vuoi rappresentarli in MySQL. Per convenzione ciò significa archiviarlo in UTC insieme al TZ in una colonna separata, quindi convertirlo in selezione con la funzione convert_tz (sempre da UTC)

1

MySQL memorizza sempre timestamps as utc. Le date vengono sempre memorizzate senza informazioni sul fuso orario.

È possibile configurare mysql per restituire valori da now() in diversi timezones.

Per memorizzare l'offset corrente è necessario aggiungerlo a qualche colonna per conto proprio.

Problemi correlati