我有一个名为history的表,其中包含字段:
id、accessionNumber、借用日期、归还日期、罚款
我打算在运行查询时按以下方式更新表的行:
1- 将今天的日期插入 return_date
2-从return_date(=今天的日期)中减去borrow_date,乘以我将作为参数发送的常量并将结果插入fine
我已经四处寻找了几个小时,但由于我是初学者,我无法从中得到太多东西。
这是我的查询不起作用,我做错了什么?
UPDATE history
SET date_returned = CURDATE() ,
fine=DATEDIFF(CURDATE(),STR_TO_DATE(history.date_borrowed, '%m/%d/%Y')) * @some_constant
WHERE id = @id and accessionNumber=@accessionNumber
我正在使用 MySQL Workbench 6 和 C#(如果有帮助的话)。
我收到的错误消息是:
Incorrect datetime value: '2013-12-11' for function str_to_date
预先感谢您的帮助。
最佳答案
我猜测 borrow_date
确实存储为 date
而不是字符串。如果是这样,那么查询可以简化为:
UPDATE history
SET date_returned = CURDATE() ,
fine = DATEDIFF(CURDATE(), borrow_date) * some_constant
WHERE id = @id and accessionNumber=@accessionNumber;
关于c# - 更新查询无法识别其运行的表的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20977006/