2009-07-14 10 views
1

Je travaille actuellement sur un projet qui me demandera de permettre aux utilisateurs de stocker des dates négatives dans la base de données. Ces dates ont le potentiel de s'étendre sur plusieurs milliers d'années avant JC, et aussi tard que «Aujourd'hui». J'ai travaillé sur de nombreux projets qui stockaient des dates, mais toutes étaient des dates relativement récentes, et aucune d'entre elles n'a jamais été négative (BC).Que considérer avant de stocker des dates négatives dans MySQL?

Quels types de choses devrais-je prendre en considération lorsque je travaille avec ce type de données? Je suis pleinement conscient des nombreux changements de calendrier qui ont eu lieu dans l'histoire, mais je vais travailler avec le calendrier moderne et ne pas trop se soucier de faire des conversions. Cependant, toute information sur les conversions serait grandement appréciée car il s'agit d'un sujet très pertinent, et un sujet qui m'intéresse sur le plan académique, bien qu'il ne soit pas nécessaire de me concentrer sur ce projet.

Mise à jour: je serai histoire AAAA-MM-JJ (Ce format n'est pas nécessaire)

Répondre

2

Comment votre stockage ne précise besoin d'être? Est-ce des années, des jours ou des heures/minutes. Si vous regardez seulement les jours ou les années, alors peut-être vous n'avez pas besoin de stocker réellement la date, mais plutôt un décalage de +/- jour/années de 0 Date

+0

Année, Mois, Jour, Heures, Minutes – Sampson

+0

Terminé avec des champs individuels pour l'année (int), le mois (int) et le jour (int). Modifié par période (1 = AD, 0 = BC). – Sampson

0

J'ai eu le même problème et je Je voulais continuer le relais sur les champs de date dans la base de données pour me permettre d'utiliser la recherche de plage de dates avec une précision allant jusqu'à un jour pour les valeurs historiques. (Ma DB comprend la date de naissance et les dates des empereurs romains ...)

La solution était d'ajouter une année constante (exemple: 3000) à toutes les dates avant de les ajouter à la base de données et en soustrayant la même nombre avant d'afficher les résultats de la requête aux utilisateurs.

Si votre base de données contient déjà des dates, n'oubliez pas de mettre à jour la valeur existante avec le nouveau nombre const.

+1

Exact dupliquer de [votre réponse] (http://stackoverflow.com/questions/2487543/does-mysql-support-historical-date-like-1200/22089006#22089006), arrêter d'afficher des réponses en double et là en ne créant pas de redondance . –

Questions connexes