Maison > Article > base de données > La différence entre Datetime et Timestamp dans Mysql
Les trois types de date, datetime et timestamp (si vous comptez int, quatre types) utilisés pour représenter l'heure dans MySQL sont relativement faciles à confondre. Comparons les similitudes et les différences de ces trois types
. Les mêmes points
peuvent être utilisés pour représenter le temps
Les deux sont affichés sous forme de chaînes
Les différents points
1. Comme son nom l'indique, date représente uniquement la date sous la forme « AAAA-MM-JJ », datetime représente « AAAA-MM-JJ ».
Date et heure sous la forme HH:mm:ss', l'horodatage est affiché dans le même format que datetime.
2. La plage horaire que date et datetime peuvent représenter est comprise entre « 1000-01-01 » et « 9999-12-31 ». L'horodatage est limité par le type int 32 bits et peut représenter « 1970-01- ». 01'
00:00:01'au'2038-01-19
03:14:07' heure UTC.
3. Mysql convertira l'heure en heure UTC lors du stockage du type d'horodatage, puis le restaurera dans le fuseau horaire actuel lors de la lecture.
Si vous stockez une valeur de type horodatage puis modifiez le fuseau horaire MySQL, vous obtiendrez une heure incorrecte lorsque vous relisez la valeur. Cela ne se produit pas avec la date et la date/heure.
4. Le type d'horodatage fournit une fonction de mise à jour automatique, il vous suffit de définir sa valeur par défaut sur CURRENT_TIMESTAMP.
5. En plus de la date, la date et l'horodatage sont tous deux exprimés en secondes, tandis que les millisecondes sont ignorées.
Format de l'heure
mysql fournit un format de chaîne de temps relativement souple pour l'ajout, la suppression, la modification et la requête. Reportez-vous au format d'heure ISO, qui s'écrit généralement sous la forme « 05/06/2013 ». 16:34:18'. Mais vous pouvez également l'abréger en « 13-6-5 », mais cela peut facilement prêter à confusion. Par exemple, MySQL traitera également « 13:6:5 » comme l'année, le mois et le jour, et quand « 13:16 ». :5', mysql considère que c'est un format incorrect, un avertissement sera donné, puis la valeur stockée dans la base de données est '0000-00-00 00:00:00'.
Le manuel mentionne également spécifiquement une situation, c'est-à-dire que lorsque la valeur de l'année en cours est 0~69, mysql la considère comme étant 2000~2069, et lorsque 70~99, il la considère comme 1970 ~1999. J'ai l'impression que c'est superflu.
En bref, adaptez-vous à la situation en constante évolution en restant le même et en utilisant le format 'AAAA-MM-JJ HH:mm:ss' ne vous tromperez jamais
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!