我在JAVA中有SQL查询问题。Java代码中的SQL查询无法正常工作
JAVA代码:
public boolean zeKontrolaExistujiciZalohyTest(String datum) {
try {
connected();
boolean existujeZaloha = false;
int pocet;
ResultSet rs = statement.executeQuery("SELECT count(id) FROM "+table_ze+"\n" +
"WHERE TO_CHAR(TO_DATE(datum, 'dd.mm.yyyy'), 'mm.yyyy') = TO_CHAR(TO_DATE('"+datum+"', 'dd.mm.yyyy'), 'mm.yyyy')");
rs.next();
pocet = rs.getInt(1);
rs.close();
closed();
if (pocet >= 0) {
existujeZaloha = true;
} else {
existujeZaloha = false;
}
return existujeZaloha;
} catch (Exception e) {
e.printStackTrace();
Dialogs.create()
.title("Exception Dialog")
.showException(e);
return true;
}
}
SQL查询在SQL开发者:
SELECT count(id) FROM pbtest.u_zalohy_energie
WHERE TO_CHAR(TO_DATE(datum, 'dd.mm.yyyy'), 'mm.yyyy') = TO_CHAR(TO_DATE('15.09.2014', 'dd.mm.yyyy'), 'mm.yyyy');
当运行JAVA代码,因此导致一个变量为 “pocet = 0”。但是,当我在任何SQL Developer中运行SQL查询时,结果列COUNT(id)为“1”。
当我更改SQL查询时,让我运行JAVA代码回退一个变量“pocet = 1”。
更改SQL代码:
ResultSet rs = statement.executeQuery("SELECT count(id) FROM "+table_ze+"\n" +
"WHERE datum = TO_DATE('"+datum+"', 'dd.mm.yyyy')");
有谁知道问题出在哪里?
有关信息:我使用Oracle数据库。
谢谢。
如果您有一个日期列,比较日期,而不是字符串。 – jarlh
'datum'是日期还是字符串? –
你可以用Java打印查询并查看它是否打印所需的SQL语句? – Nitish