【问题标题】:Fix date in MySQL修复 MySQL 中的日期
【发布时间】:2022-01-11 22:04:23
【问题描述】:

语法如下:

string insert_query = "insert into book_borrow (BookID, MemberID, Date_Borrow, Date_Return) values ('" + BookID + "', '" + MemberID + "', curdate(), dateadd(month,1, getdate()))";
const char* q = insert_query.c_str();
qstate = mysql_query(conn, q);

我有错误查询执行问题!第1305章

我想在当前日期之后自动添加返回日期,但我无法得到它。

【问题讨论】:

  • SQL Injection alert - 您应该将您的 SQL 语句连接在一起 - 使用 参数化查询 来避免 SQL 注入 - 查看Little Bobby Tables
  • dateadd(month,1, getdate()) 看起来像 SQL Server (MS SQL) 代码,而不是 MySQL...

标签: mysql date format


【解决方案1】:

对于 MySQL,它将是 DATE_ADD() 而不是 dateadd(),文档可以找到 here

另外,不要信任 BookID 和 MemberID 等用户输入以防止 SQL 注入。尝试使用准备好的语句。

试试下面的 SQL

string insert_query = "insert into book_borrow (BookID, MemberID, Date_Borrow, Date_Return) 
values ('" + BookID + "', '" + MemberID + "', CURDATE(), DATE_ADD(CURDATE(), INTERVAL 1 MONTH))";

【讨论】:

猜你喜欢
  • 2023-03-29
  • 1970-01-01
  • 2013-04-27
  • 1970-01-01
  • 2013-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-07
相关资源
最近更新 更多