PreparedStatement在引号中设置变量

时间:2016-07-13 10:57:32

标签: java sql date prepared-statement

我有选择

的这一部分
to_date(?,'YYYY-MM-DD HH24:MI:SS')

并从java

设置param
stmt.setString(2, startDate);

但我的startDate是String(2016-07-13 00:00:00),我需要这个结果

to_date('2016-07-13 00:00:00','YYYY-MM-DD HH24:MI:SS')

我可以做到这个

stmt.setString(2, "\'"+startDate+"\'");

但我认为这是不好的实践。

我可以做这样的事吗

to_date('?',' YYYY-MM-DD HH24:MI:SS')

to_date(\'?\',' YYYY-MM-DD HH24:MI:SS')

或其他什么?

1 个答案:

答案 0 :(得分:-1)

这是Oracle Documentation的副本:

void setDate(int parameterIndex, Date x, Calendar cal) throws SQLException 
     

将指定参数设置为给定的java.sql.Date   value,使用给定的Calendar对象。驱动程序使用日历   用于构造SQL DATE值的对象,然后驱动程序将其发送到该值   数据库。使用Calendar对象,驱动程序可以计算   日期考虑到自定义时区。如果没有Calendar对象   指定后,驱动程序使用默认时区,即时区   运行应用程序的虚拟机。