【问题标题】:Jdbc sql syntax error for date日期的 Jdbc sql 语法错误
【发布时间】:2015-03-20 19:29:18
【问题描述】:
ResultSet resultObj = statementObj.executeQuery("SELECT EMPLOYEE_ID FROM JOB_HISTORY WHERE START_DATE > Convert(datetime, '2001-01-13' )");

我在执行程序时收到此错误:

java.sql.SQLSyntaxErrorException: ORA-00904: "DATETIME": 标识符无效

【问题讨论】:

标签: java sql oracle jdbc


【解决方案1】:

如果您使用的是 Oracle,请使用 Oracle 语法:

SELECT EMPLOYEE_ID
FROM JOB_HISTORY
WHERE START_DATE > DATE '2001-01-13';

date 关键字允许您对日期常量使用 ISO 标准语法。

【讨论】:

  • 使用准备好的语句会更灵活,而不用担心数据库实际需要什么格式。把细节工作留给 JDBC 驱动,这就是它的工作。
【解决方案2】:

试试这个:

ResultSet resultObj = statementObj.executeQuery("SELECT EMPLOYEE_ID FROM JOB_HISTORY WHERE START_DATE > '2001-01-13'");

【讨论】:

    【解决方案3】:

    试试这个

    Query ="SELECT EMPLOYEE_ID FROM JOB_HISTORY WHERE START_DATE >'2001-01-13' ";
    ResultSet resultObj = statementObj.executeQuery(Query);
    

    【讨论】:

      猜你喜欢
      • 2017-11-29
      • 2014-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多