tipo de tiempo MySQL
首先可以将使用字符串类型来表示时间类型排除掉:
字符串占用需要 19字节,占用的空间比较大。
其次字符串表示的时间比较、处理比较麻烦,不能使用时间函数,比如:YEAR()
Por lo tanto, los tipos de hora más utilizados en MySQL son TimeStamp y DateTime.
La diferencia entre TimeStamp y DateTime:
Puntos similares :
- El formato de ambos es el mismo: AAAA-MM-DD HH:MM:SS
diferencia:
-
DATETIME se puede utilizar en un rango de tiempo más amplio
-
El rango que DATETIME puede representar:
1000-01-01 00:00:00.000000
a9999-12-31 23:59:59.999999
-
El rango que TIMESTAMP puede representar::
'1970-01-01 00:00:01.000000' UTC
a'2038-01-09 03:14:07.999999' UTC
Si el rango de tiempo insertado excede el rango TIMESTAMP, se generará un error.
Incorrect datetime value: '2040-3-30 11:00:00' for column 'time_stamp'
-
-
espacio ocupado
- TIMESTAMP ocupa 4 bytes
- DATETIME ocupa 8 bytes en MySQL 5.6 y 5 bytes en versiones posteriores.
-
El tipo TIMESTAMP se ve afectado por la zona horaria y cambiará con los cambios de zona horaria.
Por ejemplo, la tabla time_test contiene los siguientes datos:
Cambie la zona horaria del sistema (el valor predeterminado es Este 8, ahora cambie la zona horaria del sistema a Este 9):
Consulte los datos en la tabla nuevamente y descubra que la hora del tipo TIMESTAMP ha cambiado, pero la hora de DATETIME no ha cambiado:
-
Inserte ahora() y verifique si el valor real guardado es consistente con la hora actual de la computadora:
- TIMESTAMP: puede ser inconsistente porque su valor primero se convertirá a un valor de hora UTC y luego se almacenará en la base de datos.
- DATETIME: No se realizará ninguna conversión, es consistente con la hora actual.
resumen:
- TIMESTAMP ocupa menos espacio y generalmente se usa en escenarios relacionados con zonas horarias. Por supuesto, DATETIME también se puede asociar con zonas horarias de alguna manera;
- El defecto de TIMESTAMP es que el rango de tiempo que puede representar es demasiado pequeño. DATETIME generalmente se usa en escenarios que no tienen nada que ver con zonas horarias y requiere un rango de tiempo relativamente grande.