gpt4 book ai didi

java - 使用 java.sql.Date

转载 作者:行者123 更新时间:2023-12-01 16:38:12 24 4
gpt4 key购买 nike

我正在使用 jdbc 调用 sql 查询“.... where mydate like '?%' ”我想将参数传递给查询:

PreparedStatement ps;  
ps.setDate(1, new java.sql.Date.valueOf("2000-01-13"));

但是最后一行没有编译,我不知道为什么。当我直接在上面的查询中输入日期时,如“.. where mydate like '2000-01-13%'”,它起作用。

最佳答案

除了基本的编译错误(只需删除 new ),我发现了 2 个严重的问题:

  1. 鉴于 LIKE有效,你的mydate字段显然是 varchar输入而不是完整的 date , datetimetimestamp类型。这是问题的根源。您应该始终为字段保存的信息使用正确的数据类型。

  2. %不能放在准备好的语句占位符之后 ? 。它必须直接设置在值中。但是,这适用于 String仅值(以及 varchar 字段类型)。对于一个充分的date , datetimetimestamp您更愿意使用 = 的类型, < , >BETWEEN相反。

有两种解决方案:

  1. 将字段的数据类型更改为实数 date , datetimetimestamp ,以便您可以使用正确的 SQL 语法,例如 WHERE mydate BETWEEN ? AND ? .

  2. 使用preparedStatement.setString(1, "2000-01-13%")相反,并删除占位符 ? 周围的单引号以及它的结尾如 WHERE mydate LIKE ? .

另请参阅:

关于java - 使用 java.sql.Date,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7048077/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com