我有一个 SQL 语句并尝试使用 Java 中的 H2 内存数据库执行。抛出以下异常。
SQL:
SELECT ACCT_RULE_ID, ACCT_ACTION_ID
FROM ACCT_RULE
WHERE (ACCT_ACTION_ID = ?)
AND (START_DATETIME <= to_char(?, 'mm/dd/yyyy HH:MI:SS AM'))
AND (STOP_DATETIME > to_char(?, 'mm/dd/yyyy HH:MI:SS AM'))
用 Id 替换第一个参数,用新的 Date() 值替换第二个和第三个参数。
Exception:
Caused by: org.h2.jdbc.JdbcSQLException: Function "TO_DATE" not found; SQL statement:
最佳答案
您应该能够创建自己的to_date
函数
drop ALIAS if exists TO_DATE;
CREATE ALIAS TO_DATE as '
import java.text.*;
@CODE
java.util.Date toDate(String s, String dateFormat) throws Exception {
return new SimpleDateFormat(dateFormat).parse(s);
}
'
当然你也可以根据 David Small 的回答使用 parsedatetime()
关于java - 在 H2 数据库中找不到函数 "TO_DATE",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21544114/