Esto devuelve 1
(también conocido como TRUE
) haceMySQL: DATE_SUB/DATE_ADD que cuenta para DST?
SELECT DATE_SUB(NOW(), INTERVAL 24*100 HOUR) = DATE_SUB(NOW(), INTERVAL 100 DAY);
100 días, el día de la hora no cambia. Pero debido al horario de verano (EE. UU.), Hace 100 períodos de veinticuatro horas es en realidad una hora antes que si contara por días. Si la declaración anterior representaba el horario de verano, devolvería 0
o FALSE
.
¿Hay alguna manera en que puedo decir para dar cuenta del horario de verano para una declaración o sesión determinada? Preferiría no usar UNIX_TIMESTAMP
ya que corta algo más allá de 2038.
Esto podría ser útil http://stackoverflow.com/questions/1646171/mysql-datetime-fields-and-daylight-savings-time-how -do-i-reference-the-extra (improbable tiene una cura en mysql) – ajreal
¡Chico! ¿[Me gustaría poder escribir un tipo de datos personalizado] (http://dba.stackexchange.com/questions/5098/is-there-such-thing-as-custom-data-types) que funciona correctamente! –
Tendrá que escribir su propia función DATE_SUB que tenga en cuenta el horario de verano. Por cierto, me encantaría estrangular a quien haya inventado esa pesadilla de DST. – Johan