2014-02-18 72 views
0

我試着輸入值表中,我得到這個錯誤MySQL的不正確的日期時間值:09:40 AM」爲

"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

好,'09:40 AM'不是'datetime'。你不是很明顯嗎? – zerkms

+1

你有'時間'而不是'datetime'作爲輸入。 –

+2

MySQL或SQL服務器? – Alexander

回答

-3

因爲你聲明start_time as datetime NULL,並且mysql期望datetime值。 使用相同類型END_TIME(VARCHAR(8)NULL)

+0

賦值start_time爲datetime – user3003395

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); 

Fiddle Demo

-1

檢查您是否已申報

start_time datetime , 

end_time varchar(8) 

但插入時,您發送'09:40 AM', '11:10 AM'。所以請檢查您的數據類型一次。

+0

賦值說start_time是datetime。 end_time - 最多允許8個字符 – user3003395

+0

@ user3003395:然後您必須在您的帖子中明確提及。不要認爲它有任何'降低投票'。 – BAdmin

0

的格式在這種格式

'9999-12-31 23:59:59' 
0

分配所述start_timedatetime指定日期時間字段一個DateTime類型。

除非你傳遞一個日期價值,但時間,作爲日期時間領域輸入的一部分,發動機將無法理解只是時間的日期和時間。如果您在課程開始日期和結束日期有預先確定的日期和時間,請以MySQL可以理解的格式輸入它們。

如果您具有單獨的日期和時間值,則可以將它們組合起來以形成datetime值。
下面是一些例子:

實施例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'); 
相關問題