2013-07-24 47 views
0

我的Insert語句數據截斷,不正確的日期試圖插入時間

INSERT INTO tblData_FY14 
VALUES (STR_TO_DATE('24/07/2013','%d/%m/%Y'), 
     STR_TO_DATE('14:31:07','%h:%i:%s'), 
     STR_TO_DATE('14:31:20','%h:%i:%s'), 
     1, 1, 2, 3, 4, 13) 

當值的誤差,我得到:

com.mysql.jdbc.MysqlDataTruncation: Data truncation: 
     Incorrect date value: '14:33:21' for column 'TimeofStop' at row 1 

我不明白爲什麼我得到錯誤,據我所見,格式是正確的...

我有與此日期相同的問題,但設法解決它搜索正確的格式,但我在這個時間問題的努力已經到來迄今沒有任何東西

EDIT 看到C#代碼,用於創建該表:

MySqlCommand command = new MySqlCommand("CREATE TABLE IF NOT EXISTS tblData" + GVars.curFY + 
         " (" + 
         "DateofStop DATE, " + 
         "TimeofStop DATETIME, " + 
         "TimeofStart DATETIME, " + 
         "CategoryID INT REFERENCES tblDtCategory(CategoryID), " + 
         "DowntimeID INT REFERENCES tblDowntime(DowntimeID), " + 
         "AreaID INT REFERENCES tblMachineArea(AreaID), " + 
         "ProblemID INT REFERENCES tblProblem(ProblemID), " + 
         "CauseID INT REFERENCES tblCause(CauseID), " + 
         "DowntimeSeconds INT);", dbConn); 

類型「TimeofStop」和「TimeofStart」是日期時間 然而,MySQL命令提示示出了它們作爲DATE,這是問題?我應該設置哪種類型?

insteadd的
+0

你有'DATE'或'DATE_Time'格式? – jaczes

+1

tblData_FY14中的collumns類型是什麼?編輯:ESPECIALY TimeofStop – jaczes

+0

看我的編輯.... – iabbott

回答

0

校正@Akhil交:

INSERT INTO tblData_FY14 
VALUES (STR_TO_DATE('24/07/2013','%d/%m/%Y'), 
    CONCAT('0000-00-00 ',STR_TO_DATE('14:31:07','%H:%i:%s')), 
    CONCAT('0000-00-00 ',STR_TO_DATE('14:31:20','%H:%i:%s')), 
    1, 1, 2, 3, 4, 13); 
  • 編輯: 這是毫無意義有 「DateofStop DATE,」 & 「TimeofStop DATETIME」 collumns
+0

我接受了關於擺脫DATE字段的意見,現在我有2個DATETIME字段,並且完美地工作......感謝您的幫助 – iabbott

1

使用%H%h


%H採用24小時的格式,其特徵在於使用%h 12小時格式

INSERT INTO tblData_FY14 
VALUES (STR_TO_DATE('24/07/2013','%d/%m/%Y'), 
     STR_TO_DATE('14:31:07','%H:%i:%s'), 
     STR_TO_DATE('14:31:20','%H:%i:%s'), 
     1, 1, 2, 3, 4, 13) 
+0

應該有'CONCAT('0000-00-00',STR_TO_DATE('14:31:07','%H:%我:%s'))' – jaczes

相關問題