根据另一列+间隔更新列

时间:2014-10-27 21:50:20

标签: mysql

我们的数据库目前有一个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

我可以不在set列中使用行参数吗?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您的UNIX_TIMESTAMP是单引号,这会将其视为一个字符串,并在演示时转为零。你想要的是这个;

SET course_end_date = UNIX_TIMESTAMP(DATE_ADD(FROM_UN...