2010-09-01 39 views
12

Tengo una consulta que quiero actualizar una columna con la hora actual. La columna que deseo actualizar es del tipo datetime.Mysql/Php - Fecha y hora actual

¿Cómo puedo obtenerlo y configurarlo?

else{ //If the last update is NULL, It must be players first page load. So set datetime equal to NOW 
    $query = "UPDATE `stats` SET `last_ap_update` = WHERE `member_id` = {$_SESSION['SESS_MEMBER_ID']}"; 
    $queryresult = mysql_query($insertqry); 
} 
+2

si se utiliza el 'timestamp' tipo para la columna que va a hacer esto de forma automática cada vez que el registro se actualiza ... http: // dev .mysql.com/doc/refman/5.0/es/timestamp.html – prodigitalson

+0

Eso no funcionará para mis propósitos. – user377419

Respuesta

20

El uso de NOW() en la consulta proporcionaría esto.

else{ //If the last update is NULL, It must be players first page load. So set datetime equal to NOW 
    $query = "UPDATE `stats` SET `last_ap_update` = NOW() WHERE `member_id` = {$_SESSION['SESS_MEMBER_ID']}"; 
    $queryresult = mysql_query($insertqry); 
} 

Pero si esto se actualiza en cualquier momento las actualizaciones de la tabla, sugeriría cambiar la columna a TIMESTAMP y esto se actualizará automáticamente a la hora actual para que en cualquier momento que los cambios de registro.

+0

woooooo. Funciona, obtienes la mejor respuesta cuando puedo. – user377419

+0

Solo tenga en cuenta que mySql tiene problemas con unidades de tiempo menores que segundos. Hay algunos parches no compatibles si necesita esta característica. Es posible que desee simplemente alimentar el tiempo del sistema mientras construye su cadena de solicitud y trabajar todo alrededor de un formato epoch + macroseconds (como lo hacen muchas personas de MySQL con necesidades de auditoría) – Incognito

2

Puede usar la función mysql NOW() para esto, o puede pasar el $ _SERVER ['REQUEST_TIME'] allí para que mysql almacene la consulta.

8
else{ //If the last update is NULL, It must be players first page load. So set datetime equal to NOW 
    $query = "UPDATE `stats` SET `last_ap_update` = '".gmdate("Y-m-d H:i:s")."' WHERE `member_id` = {$_SESSION['SESS_MEMBER_ID']}"; 
    $queryresult = mysql_query($insertqry); 
} 

Se puede utilizar cualquier formato que desee en lugar de gmdate("Y-m-d H:i:s")

Cuestiones relacionadas