c# - 更新查询无法识别其运行的表的字段

标签 c# mysql sql

我有一个名为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/

相关文章:

c# - 在 if/else 中找不到按钮的变量

c# - 如何传递这个参数?

php - PDO : update mysql `date` column from (d/m/y) to timestamp

php - 根据数据库 php/mysql 中的用户角色显示 div

c# - sql查询根据条件对一列中的相同值进行分组

c# - 是否有使用查询语法在 LINQ 查询中执行 ToList 的巧妙方法?

c# - 使用 EventHandler 更新主线程中的控件

mysql - Symfony doctrine::build 任务无法创建名为 order 的表

mysql - 如何在MySQL中逐行显示记录字符串

mysql - 具有多个 WHERE 子句的 SQL Like 语句