我尝试在表格中输入值,我收到了此错误
"Incorrect datetime value: '09:40 AM' for column"
CREATE TABLE Class_Section (
crn char(5) NOT NULL Primary key,
dept_code char(3) NOT NULL,
course_num char(3) NOT NULL,
meeting_days varchar(6) NULL ,
start_time datetime NULL,
end_time varchar(8) NULL,
campus_code varchar(3) NOT NULL,
location varchar(6) NOT NULL,
faculty_id char(4) NOT NULL,
enrollment TINYINT NOT NULL,
capacity TINYINT NOT NULL,
);
INSERT INTO Class_Section (
CRN, dept_code, course_num, meeting_days, start_time, end_time, campus_code, location, faculty_id, enrollment, capacity
)
VALUES ('20761', 'PSY', '101', 'MW', '09:40 AM', '11:10 AM', 'WC','E-527', 'F002', 40, 40
);
谢谢
答案 0 :(得分:1)
使用时间数据类型
在创建表格
时,您在列的末尾使用了逗号CREATE TABLE Class_Section
(
crn char(5) NOT NULL Primary key,
dept_code char(3) NOT NULL,
course_num char(3) NOT NULL,
meeting_days varchar(6) NULL ,
start_time Time NULL,
end_time Time NULL,
campus_code varchar(3) NOT NULL,
location varchar(6) NOT NULL,
faculty_id char(4) NOT NULL,
enrollment TINYINT NOT NULL,
capacity TINYINT NOT NULL
);
INSERT INTO Class_Section ( CRN, dept_code, course_num, meeting_days, start_time, end_time, campus_code, location, faculty_id, enrollment, capacity ) values ('20761', 'PSY', '101', 'MW', '09:40:00', '11:10:00', 'WC','E-527', 'F002', 40, 40);
答案 1 :(得分:0)
这是你问题的SQL Fiddle。
start_time的DateTime类型格式为'YYYY-MM-DD HH:MM'
答案 2 :(得分:0)
以此格式指定日期时间字段
'9999-12-31 23:59:59'
答案 3 :(得分:0)
任务将
start_time
称为datetime
。
除非您传递 date 值,但 time ,作为 datetime 字段输入的一部分,引擎将无法理解< em>只是时间作为日期和时间。如果您在课程开始日期和结束日期有预先确定的日期和时间,则以MySQL可理解的格式输入它们。
如果您单独设置日期和时间值,则可以将它们组合在一起以形成日期时间值。
以下是一些例子:
示例1 :
如果您将日期和时间作为单独的值:
insert into tbl( col_of_type_datetime ) values( curdate(), '09:40 AM' );
insert into tbl( col_of_type_datetime ) values( '2014-02-18', '09:40 AM' );
示例2 :
如果您有已知的时间戳值:
insert into tbl( col_of_type_datetime ) values( now() );
insert into tbl( col_of_type_datetime ) values( '2014-02-18 15:10:34' );
示例3 :
如果您只有日期但现在时间值:
insert into tbl( col_of_type_datetime ) values( cast( curdate() as datetime ) );
insert into tbl( col_of_type_datetime ) values( curdate() );
insert into tbl( col_of_type_datetime ) values( cast('2014-02-18' as datetime) );
insert into tbl( col_of_type_datetime ) values( '2014-02-18' );
答案 4 :(得分:-1)
检查您是否已宣布
start_time datetime ,
end_time varchar(8)
但插入时,您正在发送'09:40 AM', '11:10 AM'
。所以请检查一下你的数据类型。
答案 5 :(得分:-3)
因为你将start_time声明为datetime为NULL,而mysql需要一个datetime值。 使用与end_time相同的类型(varchar(8)NULL)