Mysql
 sql >> Base de données >  >> RDS >> Mysql

Existe-t-il un équivalent MySQL au TIMESTAMP WITH TIME ZONE d'Oracle ?

Non, vous devrez diviser les données en 2 colonnes, l'une contenant la date et l'heure et l'autre contenant les informations sur le fuseau horaire. Mais ce que vous mettez dans ce dernier champ dépend de ce que vous avez stocké dans Oracle - le type de données TIMESTAMP WITH TIME ZONE peut contenir le décalage TZ et (éventuellement) la région du fuseau horaire. Évidemment, ce dernier est une exigence pour que la date et l'heure soient sémantiquement correctes, mais IIRC Oracle n'impose pas que ces données soient renseignées.

Étant donné que MySQL n'a pas le type de données, il sera très difficile d'écrire une fonction MySQL pour le traiter - il est beaucoup plus simple de créer une représentation compatible MySQL dans Oracle où le type de données est pris en charge. Vous avez juste besoin de déterminer quelles données vous avez réellement et de décider comment vous voulez les représenter dans MySQL. Par convention, cela signifie le stocker en UTC avec le TZ dans une colonne séparée, puis le convertir lors de la sélection avec la fonction convert_tz (toujours depuis UTC)