La función `NOW()` de MySQL devuelve la fecha y hora actuales en el formato `YYYY-MM-DD HH:MM:SS`. Se suele utilizar para capturar el momento exacto en que se ejecuta una sentencia SQL. El resultado se basa en la zona horaria actual del servidor, a menos que se configure de otro modo.
Utilización
La función `NOW()` se utiliza cuando necesitas la marca de tiempo actual para operaciones como la inserción de datos, las actualizaciones o el registro dentro de contextos SQL como las sentencias `SELECT` o los procedimientos almacenados. Suele utilizarse para seguir el momento de creación o modificación de un registro.
Este ejemplo devuelve la fecha y hora actuales del servidor.
2. Insertar marca de tiempo actual
sql
INSERTINTOlogs(event, created_at)VALUES('User login',NOW());Con la tecnología de
Aquí, la función `NOW()` registra la hora exacta en que un usuario se conecta, almacenándola en la columna `created_at`.
3. Actualizar con marca de tiempo actual
sql
UPDATE orders
SET last_modified =NOW()WHERE order_id =102;Con la tecnología de
Este ejemplo actualiza la columna `last_modified` de un pedido concreto con la marca de tiempo actual, indicando cuándo se realizó el último cambio.
Consejos y buenas prácticas
Utilízalo en INSERTAR y ACTUALIZAR. Utiliza `NOW()` para marcar automáticamente la fecha y hora de creación o modificación de los registros.
Combínalo con la configuración de la zona horaria. Asegúrate de que la configuración de la zona horaria de tu base de datos coincide con las necesidades de tu aplicación para obtener marcas horarias precisas. Utiliza funciones como `CONVERT_TZ()` para gestionar eficazmente los husos horarios.
Considera el impacto en el rendimiento. `NOW()` se evalúa una vez por sentencia, no por fila, lo que mitiga la sobrecarga de rendimiento en consultas grandes.
Utilizar para registro y auditoría. Utiliza `NOW()` para realizar un seguimiento eficaz de la actividad dentro de tus aplicaciones con fines de depuración y auditoría.
Compatibilidad de tipos de datos. La función `NOW()` puede almacenarse en columnas `DATETIME` y `TIMESTAMP`, cada una de las cuales tiene propiedades diferentes en cuanto al manejo de la zona horaria y la autoactualización.
Consideraciones sobre la transacción. Ten cuidado con cómo pueden variar los valores de `NOW()` entre las distintas sentencias de una transacción si se ejecutan en momentos diferentes.
Distinguir de CURRENT_TIMESTAMP(). Aunque `NOW()` y `CURRENT_TIMESTAMP()` suelen utilizarse indistintamente, existen sutiles diferencias; `CURRENT_TIMESTAMP()` puede ajustarse mediante los atributos `DEFAULT CURRENT_TIMESTAMP` y `ON UPDATE CURRENT_TIMESTAMP` de las definiciones de columna.
La función `NOW()` de MySQL devuelve la fecha y hora actuales en el formato `YYYY-MM-DD HH:MM:SS`. Se suele utilizar para capturar el momento exacto en que se ejecuta una sentencia SQL. El resultado se basa en la zona horaria actual del servidor, a menos que se configure de otro modo.
Utilización
La función `NOW()` se utiliza cuando necesitas la marca de tiempo actual para operaciones como la inserción de datos, las actualizaciones o el registro dentro de contextos SQL como las sentencias `SELECT` o los procedimientos almacenados. Suele utilizarse para seguir el momento de creación o modificación de un registro.
En esta sintaxis, `NOW()` produce la fecha y hora actuales cuando se ejecuta la consulta.
Ejemplos
1. Recuperar fecha y hora actuales
Este ejemplo devuelve la fecha y hora actuales del servidor.
2. Insertar marca de tiempo actual
Aquí, la función `NOW()` registra la hora exacta en que un usuario se conecta, almacenándola en la columna `created_at`.
3. Actualizar con marca de tiempo actual
Este ejemplo actualiza la columna `last_modified` de un pedido concreto con la marca de tiempo actual, indicando cuándo se realizó el último cambio.
Consejos y buenas prácticas