Saludos a todos (de un principiante MySQL)MySQL CONVERT_TZ()
Estoy tratando de establecer una base de datos que almacena los tiempos de alerta diarios según lo especificado por los usuarios. Por ejemplo, el usuario desea recibir una alerta si se cumple algún criterio cada día entre las 7:00 a.m. y las 7:30 a.m. Al tratar de implementar esto, necesito acomodar el horario de verano. Aquí está mi intento de solución:
- almacenar a los usuarios de zona horaria local (en formato largo, por ejemplo, "los Estados Unidos/Oriental") la información en una tabla (por ejemplo userInfo), y los tiempos de alarma en otra tabla (decir userAlarms).
- Al consultar la tabla userAlarms, convierta la hora UTC en la hora local de los usuarios según lo especificado por la columna tz almacenada en la tabla userInfo a través del
CONVERT_TZ(UTC_TIME(), 'UTC', userInfo.tz)
.
Pregunta 1. Desde mi entender, especificando el nombre de zona horaria (como los EEUU/Madrid) debe tomar en cuenta el ahorro de tiempo la luz del día. Por ejemplo, llamar al CONVERT_TZ('00:00:00', 'UTC', 'US/EASTERN')
el 1 de enero debería dar '19: 00: 00 ', pero el 1 de julio la llamada debería dar '20: 00: 00'. ¿Estoy en lo correcto?
Pregunta 2. Si Q1 es correcto, ¿debo actualizar constantemente la tabla de zona horaria de MySQL para mantener actualizadas las compensaciones de UTC de la zona horaria?
Pregunta 3. La muestra proporcionada en la documentación de MySQL SELECT CONVERT_TZ('2004-01-01 12:00:00','GMT','MET')
produce "NULL
" cuando se ejecuta en mi servidor. ¿Podría ser causado por no tener las tablas de zona horaria configuradas? ¿Cómo puedo verificar esto?
Me está dando 'Error 1046 (3d000): No hay base de datos seleccionada' –
Es necesario para canalizar la salida a, literalmente, 'mysql -uroot mysql' - mysql es el ejecutable binario, y el segundo es el nombre de la base de datos mysql. – philwinkle
o 'use mysql;' primero para usar este DB en todos los comandos. O directamente: 'SELECT * FROM mysql.time_zone;' – Razor