传递日期作为参数

时间:2018-07-03 09:22:15

标签: java sql datetime

我用Java进行了SQL查询,如下所示:

"SELECT A.ID_MACHINE, A.HEURODATAGE, A.COMPTEUR, B.LIBELLE_IDMACHINE, C.LIBELLE_STATUT, C.CODE_COULEUR FROM ROXJAVA.MACH0004 A " +
"JOIN ROXJAVA.MACH0003 B ON A.ID_MACHINE = B.ID_MACHINE " +
"JOIN ROXJAVA.MACH0002 C ON B.CODE_MACHINE = C.CODE_MACHINE " +
"WHERE A.ID_MACHINE = ? AND A.HEURODATAGE BETWEEN '?' AND '?' AND A.CODE_STATUT = C.CODE_STATUT AND C.CODE_COULEUR = ? " +
"ORDER BY A.HEURODATAGE DESC";

在我的WHERE中找到“ Heurodatage”,其中必须包含以下格式的时间和日期:

  

'2018-07-03 09:30:00.000'

然后,我想借助一种考虑了我需要替换的不同属性的方法来检索此查询的结果?根据我的要求。

但是现在我无法确定日期的类型。

当我尝试使用String运行时,出现“类型不匹配”的情况。

1 个答案:

答案 0 :(得分:0)

如果该列是日期列,则要传递日期类型:

PreparedStatement ps = ...;
ps.setDate(N, java.sql.Date.valueOf(your_date_value));

如果your_date_value是java.time.LocalDate最好,但也可以从字符串(以有效格式)进行解析。