static SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd- MMM-yyyy");
static String date = simpleDateFormat.format(new Date());
private static final String SELECT_BY_AUDIT_KEY_QUERY = "SELECT * FROM
t02 WHERE t02_create_date = " + date;
这输出为:
SELECT * FROM t02_transaction_log WHERE t02_create_date = 03-Jul-2018
我想要的是:
SELECT * FROM t02_transaction_log WHERE t02_create_date = '03-Jul-2018'
我怎样才能在单引号之间获取日期?
最佳答案
你应该在这里使用准备好的语句:
String sql = "SELECT * FROM t02 WHERE t02_create_date = ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setDate(1, new Date());
ResultSet rs = ps.executeQuery();
while (rs.next()) {
// process result set
}
虽然语句对于防止诸如 SQL 注入(inject)之类的事情很重要,但它们同样有用,因为它们使您不必担心查询中的格式设置细节。在上面的查询字符串中,我们只是用 ?
占位符表示日期,并让驱动程序将当前日期编码为正确的格式以发送给 Oracle。
关于java - java中单引号内的当前日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51152513/