根据日期字段使值到期

时间:2014-07-04 07:04:11

标签: mysql sql

我有一张名为course offerings的表格。在此表格中,您会发现每个课程分别包含course_start_datecourse_end_date。我还使用名为course_status的枚举字段。每个课程IN SESSIONClosed有两种可能的状态,但不是两者。如果通过Closed传递状态,我怎样才能创建一个将状态更改为course_end_date的查询? SQLFIDDLE

CREATE TABLE course_offerings 
    (
     id int auto_increment primary key, 
     course_name varchar(20), 
     course_start_date date,
     course_end_date date,
     course_status enum('CLOSED','IN SESSION')
    );

INSERT INTO course_offerings
(course_name, course_start_date, course_end_date, course_status)
VALUES
('Math', '2013-02-20', '2014-02-20', 'IN SESSION'),
('Science', '2013-02-20', '2014-04-18', 'IN SESSION');

3 个答案:

答案 0 :(得分:1)

我不知道是否有一种动态的方式来做你正在尝试的事情。

这个简单的SQL查询可以帮助您更新这些记录:

UPDATE course_offerings 
SET course_status = 'Closed' 
WHERE course_end_date < SYSDATE

答案 1 :(得分:0)

试试这个

UPDATE course_offerings 
SET course_status = 'Closed' 
WHERE course_end_date = "passed_date";

答案 2 :(得分:0)

试试这个: -

update course_offerings set course_status='Closed' where course_end_date<str_to_date('2014-02-02','%Y-%m-%d');