Sql JDBC 查询字符串中的语法错误?

Sql Syntax error in query string with JDBC?

我正在尝试使用 java 和 jdbc 按时间戳在 sql 中搜索 table,但是当我将时间戳插入查询字符串时,我得到小时数字处的语法错误:

 String queryString = "select " + tag +  " from WATER_RUNTIME_VALUES
 where Time_Stamp = 2015-06-150 8:58:00.0000000";

 ResultSet rs = statement.executeQuery(queryString);

这里是错误:

com.microsoft.sqlserver.jdbc.SQLServerException: Incorrect syntax near '10'. at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:216) at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1515) at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(SQLServerStatement.java:792) at com.microsoft.sqlserver.jdbc.SQLServerStatement$StmtExecCmd.doExecute(SQLServerStatement.java:689) at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696) at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715) at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:180) at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:155) at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeQuery(SQLServerStatement.java:616) at bandon.scada.core.InitConn.calculateHourlyTotal(InitConn.java:58) at bandon.scada.core.InitConn.dbConnect(InitConn.java:36) at bandon.scada.core.InitConn.main(InitConn.java:24)

在时间值中加上单引号以转义2015-06-150 8:58:00.0000000

中的空格
String queryString = "select " + tag + " from WATER_RUNTIME_VALUES where Time_Stamp = '2015-06-150 8:58:00.0000000'";

或者更好地使用PreparedStatement

在日期参数中使用引号,

String queryString = "select " + tag + " from WATER_RUNTIME_VALUES where Time_Stamp = '2015-06-150 8:58:00.0000000'"

日期需要在引号内

试试这个..

String queryString = "select ' " + tag + " ' from WATER_RUNTIME_VALUES where Time_Stamp = '2015-06-150 8:58:00.0000000'";