You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何向Microsoft SQL Server发送携带DateTime类型参数的查询?

问题原因
  • 语法错误:SQL语句中日期类型的常量需要用单引号包裹,你当前直接拼接日期变量,生成的SQL没有单引号,不符合SQL语法规范
  • 格式不匹配:不同数据库对日期字符串的解析规则不同,直接把DateTime类型隐式转字符串拼接,很容易出现和数据库预期格式不一致的情况,导致日期解析失败
  • 安全风险:拼接SQL的写法存在SQL注入漏洞,生产环境严禁使用
解决思路
  • 优先使用参数化查询(最推荐)
    不要直接拼接SQL字符串,改用数据库驱动提供的参数占位符功能,示例逻辑如下(以C#为例):
    DateTime date;
    SqlCommand cmd = new SqlCommand("select * from schools where date = @Date", connection);
    cmd.Parameters.AddWithValue("@Date", date);
    SendCommand(cmd);
    
    这种方式会由驱动自动处理日期类型的格式、引号问题,同时彻底避免SQL注入风险。
  • 若临时调试非要拼接字符串(极不推荐生产使用)
    手动把日期转为数据库兼容的标准格式,同时补充单引号:
    DateTime date;
    string sql = "select * from schools where date = '" + date.ToString("yyyy-MM-dd HH:mm:ss") + "'";
    SendCommand(sql);
    
    注意需根据你实际使用的数据库调整日期格式,同时要规避日期值中含特殊字符导致的语法异常。

内容的提问来源于stack exchange,提问作者sunsunsun2200

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 22:45:03