2014-01-07 12 views
0

運行我有一個表命名歷史與字段:更新查詢不識別表的字段是在

ID,accessionNumber,date_borrowed,date_returned,精細

我打算更新表的以下述方式排時運行查詢:

1-插入今天的日期到RETURN_DATE

2-由恆定減去RETURN_DATE(=今天的日期)的borrow_date,乘法我將發送作爲參數,並將結果插入罰款

我一直在找幾個小時,但作爲初學者,我無法從中獲得太多。

這是我的查詢不起作用,我做錯了什麼?

UPDATE history 
SET date_returned = CURDATE() , 
fine=DATEDIFF(CURDATE(),STR_TO_DATE(history.date_borrowed, '%m/%d/%Y')) * @some_constant 
WHERE id = @id and [email protected] 

我正在使用MySQL Workbench 6和C#,如果這將有所幫助。

我得到的錯誤信息是:

不正確的日期時間值: '2013年12月11日' 的功能STR_TO_DATE

預先感謝任何幫助。

+0

你會得到什麼錯誤? –

+0

你得到的錯誤是什麼? – hashbrown

+0

什麼是列名?在你的文章的開頭,你提到了名稱爲** date_returned **和** date_borrowed **的字段,但是之後在你的文章中你可以引用名爲** borrow_date **和** return_date **的列!這是什麼? –

回答

1

我猜測borrow_date確實存儲爲date而不是字符串。如果是這樣,那麼查詢可以簡化爲:

UPDATE history 
    SET date_returned = CURDATE() , 
     fine = DATEDIFF(CURDATE(), borrow_date) * some_constant 
    WHERE id = @id and [email protected]; 
+0

字段IS是日期類型,並且非常感謝它正在工作。 – Nobody

相關問題