Duplicar posible:
datetime vs timestamp?marca de tiempo Unix VS fecha y hora
que tiene una tabla de MySQL, que tiene una columna add_date
. Realiza un seguimiento de la fecha/hora en que se agregó el registro a la base de datos.
consultas basadas en esta tabla:
- Mostrar cuando se agregó el registro en el formato: hace 2 horas, hace 4 semanas, 1 año, etc.
- Permitir a los usuarios a los registros insertados en cualquier día de búsqueda /mes año. Por lo tanto, el usuario puede elegir ver los registros insertados en 2009 únicamente.
¿Qué sería mejor en este caso: marca de tiempo unix o fecha y hora?
Ahora estoy usando ambos, pero dado que la tabla tendrá millones de registros en el tiempo, tener ambas columnas puede afectar el tamaño de la base de datos.
La marca de tiempo Unix parece ser mejor para la conversión a formato 2 hours
en PHP y también es independiente de la zona horaria. Pero datetime tiene una mejor legibilidad y hacer una consulta para una fecha/hora/año en particular parece más fácil.
¿Su sugerencia?
Esto. Simplemente use UNIX_TIMESTAMP (su_columna) si quiere jugar con la marca de tiempo en el extremo php. Pero en su base de datos, use el tipo de fecha nativo para almacenar las fechas. Además, los datos en su base de datos pueden ser utilizados por otras aplicaciones que pueden preferir el formato de fecha SQL que las marcas de tiempo. – Arkh
¿Habrá algún problema al convertir la fecha a las marcas de tiempo de Unix con respecto a la zona horaria? – Yeti
@Lost_in_code buena pregunta en realidad. Hay una serie de factores involucrados, la configuración de zona horaria del servidor mySQL y la configuración de zona horaria del sistema que PHP usará de forma predeterminada. En general, los campos mySQL DATETIME son insensibles a la zona horaria. Siempre que almacene las fechas UTC allí, debería poder convertirlas en marcas de tiempo fácilmente, pero tenga cuidado si mySQL y/o PHP tienen zonas horarias diferentes de UTC. Relacionado: http://stackoverflow.com/questions/18449/dealing-with-php-server-and-mysql-server-in-different-time-zones –