【问题标题】:how to put a date in jdbc namedparameter如何在jdbc命名参数中输入日期
【发布时间】:2012-12-04 13:03:08
【问题描述】:

我有以下代码:

conditions.add("mydate = str_to_date('"+date_from_user+"', '%Y-%m-%d')");

以上工作正常,但由于我从用户那里获取输入并将其推送到我的查询中,我冒着查询安全的风险。所以我想使用命名模板,所以我将代码更改为:

conditions.add("mydate = str_to_date(':mydate', '%Y-%m-%d')");
namedParams.put("mydate", date_from_user);

但是,上面的代码不起作用并产生以下错误消息:

<SQLWarning ignored: SQL state 'HY000', error code '1411', message [Incorrect datetime value: ':mydate' for function str_to_date]>

因此,namedparameter 似乎没有获取值..

【问题讨论】:

    标签: java jdbctemplate named-parameters


    【解决方案1】:

    您是否尝试过删除':mydate' 中的引号并将其更改如下,

    conditions.add("mydate = str_to_date(:mydate, '%Y-%m-%d')");
    namedParams.put("mydate", date_from_user);
    

    【讨论】:

      【解决方案2】:

      首先检查您的数据库服务器日期格式。然后以相同的格式输入。以相同的对象创建您的日期对象或以相同的格式传递字符串。

      【讨论】:

        猜你喜欢
        • 2021-12-23
        • 2018-07-15
        • 1970-01-01
        • 1970-01-01
        • 2015-12-09
        • 2011-01-19
        • 2021-08-13
        相关资源
        最近更新 更多