2014-10-27 127 views
1

我們的數據庫當前有一個course_start_date,但不是course_end_date。我的目標是根據course_type_id基於course_start_date + 3天設置每個課程_end_date。 course_start_date當前存儲爲unix_timestamp。這是我的代碼。根據另一列+間隔更新列

UPDATE system_course 
SET course_end_date = 'UNIX_TIMESTAMP(DATE_ADD(FROM_UNIXTIME(course_start_date), INTERVAL 3 DAY))' 
WHERE course_type_id = '1' 

此代碼將所有內容置於0。

Both course_start_date and course_end_date are structured: 

INT(11) unassigned 

運行下面的代碼顯示了我很好的效果(很明顯結束日期未存儲在數據庫)

SELECT FROM_UNIXTIME(course_start_date) as "Start Date", DATE_ADD(FROM_UNIXTIME(course_start_date), INTERVAL 4 DAY) as "End Date" 
FROM system_course 
WHERE course_type_id = '1' 

選擇結果:

Start Date    End Date 
2011-10-31 07:30:00 2011-11-03 07:30:00 

我可以不使用行參數設置列?我如何解決這個問題?

回答

0

您的UNIX_TIMESTAMP用單引號引起來,這會將其視爲一個字符串並按照演示投射到零。你想要的是這個;

SET course_end_date = UNIX_TIMESTAMP(DATE_ADD(FROM_UN...