Disclaimer: cela pourrait être un duplicata de DateTime vs horodatage? , mais je sens que je suis pas convaincu des réponses: p>
Ma question est: Je suis à peu près sûr que je ne sais pas tout ce qu'il y a sur les différences entre ces deux, je vais donc essayer de répertorier les principaux avantages de DateTime ( et vice versa: p>
La seule raison pour laquelle je vois pour l'utiliser puisse être la surveillance de la ligne, mais en regardant la gamme de Alors, qu'est-ce que je manque? Je ne vois toujours pas de vraiment bon em> raison de choisir l'horodatage à n'importe quel but? P>
* Je sais, cela semble assez longtemps, mais dans les années 60, certains ingénieurs ont également décidé de raser 2 octets de l'année, car leurs systèmes informatiques ne seront jamais em> L'année 2000 ..... sub> p>
Quelles sont les bonnes raisons de choisir l'horodatage sur des colonnes DateTime dans MySQL? strong> p>
dt code>) par rapport à Timeestamp (
TS code>) à ma connaissance: p>
dt code> est lisible humain (
tts code> n'est pas sans utiliser
to_date code>) li>
dt code> a une période de temps positive de 8999 ans (
1000-01-01 00:00:00 code> à
9999-12-31 23:59:59 code>)
( TS code> seulement environ 68 ans,
1970-01-01 code> à
2038-01-19 code>) li>
dt code> Les champs semblent mieux performer (selon Ce blog post ) LI>
dt code> peut être utilisé pour le calcul de la date avancée (
Sélectionnez maintenant () + Intervalle 2 jour CODE>) LI>
ul>
TS code> nécessite seulement 4 octets (
dt code> utilise 8) li>
TS code> sont stockés en tant que valeurs UTC et modifiées en fonction du réglage du fuseau horaire du client Li>
TS code> Les colonnes peuvent servir de "journal" pour la surveillance lorsqu'une ligne a changé LI>
ul>
horodatage code>, qui finira par "seulement" 28 ans *, je préférerais aller avec un Insérer ou mettre à jour la gâchette. P>
3 Réponses :
Les colonnes DT peuvent également servir de "journal" pour surveiller lorsqu'une ligne change, je les utilise et les déclencheurs pour le faire. P>
J'utilise habituellement l'horodatage lorsque vous travaillez avec beaucoup de choses PHP pour réduire trop de jour l'analyse de la date. Si le besoin se pose jamais, je peux mettre à jour mon logiciel pour utiliser DateTime. P>
Voici un aspect amusant de DT que j'ai déjà utilisé: Utilisation du DT - au moins dans MySQL - vous avez la possibilité de partir soit l'année à "0000", et / ou les deux mois et jour: "00-00". Ceci est pratique pour stocker des dates d'anniversaire sans nécessiter des informations complètes! P>
Vrai; Cependant, il est de moins que pratique si vous devez copier / migrer des données sur un DBMS différent nécessitant des champs de date pour contenir des dates (réelles). Été là, fait ça ...
La principale question est la suivante: quel est le but du champ DAYTIME / TIMESTAMP? S'il ne s'agit que d'un horodatage comme dans un fichier journal où vous ne stockez que le temps réel, le chronomètre est le meilleur choix. Parce qu'il n'a besoin que de 4 octets et nous sommes dans la portée de ce que l'horodatage peut le couvrir. S'il s'agit d'une date comme date de naissance, la datetime est le bon choix. Nous espérons que nous aurons une solution avant la fin de la portée de l'horodatage. ;) (Désolé pour mon anglais). P>
Je suis d'accord avec le stockage requis, mais le gain de vitesse lors de l'utilisation de DateTime semble l'emporter sur ceci, en particulier lorsque vous recherchez un événement à une date précise.
Nous espérons que nous aurons une solution avant la fin de la portée de l'horodatage code>. Je suppose que nous aurons un joli média vers la mi-janvier 2038 :-).