2010-09-01 41 views
12

Tôi có một truy vấn mà tôi muốn cập nhật một cột với thời gian ngày hiện tại. Cột tôi muốn cập nhật là loại datetime.Mysql/Php - Ngày và giờ hiện tại

Làm cách nào để nhận và đặt?

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

nếu bạn gõ 'timestamp' kiểu cho cột nó sẽ làm điều này tự động bất cứ lúc nào các bản ghi được cập nhật ... http: // dev .mysql.com/doc/refman/5.0/en/timestamp.html – prodigitalson

+0

Điều đó sẽ không hoạt động cho mục đích của tôi. – user377419

Trả lời

20

Sử dụng NOW() trong truy vấn sẽ cung cấp điều này.

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); 
} 

Nhưng nếu điều này được cập nhật bất cứ lúc nào bảng cập nhật, tôi sẽ đề nghị thay đổi cột để TIMESTAMP và điều này sẽ tự động cập nhật đến thời điểm hiện tại cho bạn bất cứ lúc nào mà thay đổi hồ sơ.

+0

woooooo. Nó hoạt động, bạn nhận được câu trả lời tốt nhất khi tôi có thể. – user377419

+0

Chỉ cần nhớ rằng mySql có vấn đề với đơn vị thời gian nhỏ hơn giây. Có một vài bản vá không được hỗ trợ nếu bạn cần tính năng này. Bạn có thể muốn chỉ cần nạp thời gian hệ thống trong khi xây dựng chuỗi yêu cầu của bạn và làm việc mọi thứ xung quanh một định dạng epoch + macroseconds (như nhiều người MySQL có nhu cầu kiểm toán đang làm) – Incognito

2

Bạn có thể sử dụng hàm mysql NOW() cho điều này, hoặc bạn có thể pase $ _SERVER ['REQUEST_TIME'] trong đó để truy vấn được lưu trữ bởi mysql.

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); 
} 

Bạn có thể sử dụng bất kỳ định dạng mà bạn muốn thay vì gmdate("Y-m-d H:i:s")

Các vấn đề liên quan