我们的数据库目前有一个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列中使用行参数吗?我该如何解决这个问题?
答案 0 :(得分:0)
您的UNIX_TIMESTAMP
是单引号,这会将其视为一个字符串,并在演示时转为零。你想要的是这个;
SET course_end_date = UNIX_TIMESTAMP(DATE_ADD(FROM_UN...