目次
1. Resumen de la función NOW de MySQL
La función NOW de MySQL es una función que se utiliza para obtener de forma sencilla la fecha y hora actuales dentro de la base de datos. Al aprovechar la función NOW, se pueden obtener marcas de tiempo al insertar datos y la información horaria útil para el registro de logs. Es una herramienta simple pero muy poderosa, ampliamente utilizada.Formato básico de la función NOW
El formato de la función NOW es muy simple. Con la siguiente consulta, se puede obtener la fecha y hora actuales.SELECT NOW();
El resultado se devuelve en el formato YYYY-MM-DD HH:MM:SS
. Por ejemplo, si es el 24 de octubre de 2024 a las 16:30, se obtendrá el siguiente resultado.2024-10- 16:30:00
Además, la función NOW devuelve la fecha y hora actuales basándose en la zona horaria de la base de datos. Esto permite una gestión de tiempo unificada en todo el sistema.Usos de la función NOW
La función NOW es especialmente útil en las siguientes situaciones.- Registro de logs: registra automáticamente la hora de modificación e inserción de los datos.
- Marca de tiempo: se utiliza para registrar el momento de las acciones del usuario.
- Filtrado dependiente del tiempo: al extraer datos que ocurrieron dentro de un período específico.

2. Ejemplo básico de uso de la función NOW
Veamos un ejemplo básico de cómo usar la función NOW para obtener la fecha y hora actuales.SELECT NOW();
Esta consulta devuelve la fecha y hora actuales. Además de obtenerla en formato de cadena, también es posible obtenerla en formato numérico. Al usar la siguiente consulta, la fecha y hora actuales se devuelven en formato numérico (YYYYMMDDHHMMSS
).SELECT NOW() + 0;
Por ejemplo, el resultado se devuelve como «20241024163000», lo cual es útil cuando se maneja en formato numérico.Especificación de precisión de fracciones de segundo
En la función NOW, es posible especificar la precisión de las fracciones de segundo. Se indica la precisión mediante un argumento como se muestra a continuación.SELECT NOW(3);
Esta consulta devuelve un resultado con precisión de tres decimales. Por ejemplo, se muestra como «2024-10-24 16:30:00.123». Es una función muy útil para sistemas que requieren precisión a nivel de segundos.3. Diferencia entre SYSDATE() y NOW()
Existe la función SYSDATE() que es muy similar a la función NOW, pero su comportamiento difiere ligeramente。- NOW(): Obtiene la hora en el momento de la ejecución de la consulta y mantiene la misma hora en toda la sentencia. Incluso si la transacción dura mucho tiempo, devuelve el mismo resultado。
- SYSDATE(): Obtiene la hora en cada paso de la consulta. Es decir, incluso durante una transacción prolongada, se captura la hora en real。
Ejemplo de diferencia dentro de una consulta
A continuación se muestra un ejemplo de consulta que ilustra la diferencia de comportamiento entre SYSDATE() y NOW()。SELECT NOW(), SYSDATE();
El resultado es el siguiente。NOW(): 2024-10-24 16:30:00
SYSDATE(): 2024-10-24 16:30:01
La diferencia de tiempo en el instante en que se ejecuta la consulta se refleja en SYSDATE(), mientras que NOW() conserva la hora de inicio de la ejecución. Así, aunque el comportamiento de ambos difiere sutilmente, es importante elegir la función adecuada según el caso de uso。
4. Ejemplos de uso de la función NOW
La función NOW es muy útil en escenarios específicos. Por ejemplo, si se desea registrar automáticamente la fecha y hora en que se insertan los datos, se puede usar la función NOW de la siguiente manera.INSERT INTO users (username, created_at)
VALUES ('example_user', NOW());
De este modo, al insertar un registro, la hora actual se registra automáticamente en la columna created_at
. Esta funcionalidad es especialmente valiosa para el registro de logs y el seguimiento de eventos. Además, si se desea extraer los datos creados en los últimos 7 días, se puede aprovechar la función NOW de la siguiente forma.SELECT * FROM orders
WHERE order_date >= NOW() - INTERVAL 7 DAY;
Esta consulta obtiene todos los registros creados en los últimos 7 días a partir de la fecha y hora actuales. La función NOW es muy eficaz para extraer datos dependientes del tiempo.5. Precauciones de la función NOW
Al usar la función NOW, hay varios puntos a tener en cuenta. En particular, puede afectar la consistencia de las transacciones, por lo que es necesario prestar atención al contexto de uso.- Funcionamiento dentro de la transacción: La función NOW devuelve un resultado consistente dentro de la transacción, por lo que incluso durante procesos de larga duración se devuelve la misma hora. Esto es importante para mantener la integridad de los datos. Sin embargo, si se necesita la hora en tiempo real, es más apropiado usar SYSDATE().