PreparedStatement是否在java中更改字符串?
PreparedStatement prest=con.prepareStatement(查询)PreparedStatement是否在java中更改字符串?,java,sql,Java,Sql,PreparedStatement prest=con.prepareStatement(查询) //像那样的东西吗??但是我不确定在哪里使用setTimestamp()。。非常感谢您的时间和努力,顺便说一句 作为参数传递的不是字符串参数。这是查询本身的一部分。参数只能是2007-10-10 00:00:00 CET,其余的应该在查询本身中。通过执行您正在执行的操作,查询实际上将 WHERE S_DATE BETWEEN 'TIMESTAMP ''2007-10-10 00:00:00 CET'
//像那样的东西吗??但是我不确定在哪里使用setTimestamp()。。非常感谢您的时间和努力,顺便说一句 作为参数传递的不是字符串参数。这是查询本身的一部分。参数只能是
2007-10-10 00:00:00 CET
,其余的应该在查询本身中。通过执行您正在执行的操作,查询实际上将
WHERE S_DATE BETWEEN 'TIMESTAMP ''2007-10-10 00:00:00 CET''' ...
但是,与其将时间戳作为字符串传递并使用数据库函数将这些字符串转换为时间戳,不如使用setTimestamp()
传递java.sql.Timestamp
实例;1) 创建时间戳的方式意味着您没有将它们作为UTC存储在数据库中。特别是由于指定的时区(可能)受到DST的影响,这可能会导致问题(很大程度上取决于RDBMS供应商/版本)。通常,建议使用UTC,特别是对于涉及多个时区的任何事物。2) 请阅读和可变精度类型(如时间戳)之间的问题。
WHERE S_DATE BETWEEN 'TIMESTAMP ''2007-10-10 00:00:00 CET''' ...