내 코드는 mysql 데이터베이스에서 주어진 시간에 다음 업데이트를 수행합니다.
" UPDATE client_registration " +
" SET registration_date = NOW() " +
" WHERE cycle <= str_to_date(\"" + now + "\",'%d/%m/%Y %H:%i') ";
그러나 HSQL 데이터베이스에서이 업데이트를 수행하려는 단위 테스트가 있는데 다음 오류 메시지가 나타납니다. 사용자에게 권한이 없거나 객체를 찾을 수 없음 : STR_TO_DATE
.
HSQL에 대한 쿼리를 다시 작성해야합니다.
" UPDATE client_registration " +
" SET registration_date = NOW() " +
" WHERE cycle <= current_timestamp";
hsqldb에서 "select current_timestamp"를 수행하는 방법
'now'변수와 함께 사용하는 형식 문자열에 SQL 표준 형식 'YYYY-MM-DD hh : mm : ss'(예 : '2020-07-21 14:30:00')를 사용하면 더 쉽습니다. MySQL. 이 경우 HSQLDB 함수는 다음과 같이 생성됩니다.
CREATE FUNCTION STR_TO_DATE(STR VARCHAR(30), FORMAT VARCHAR(40) )
RETURNS TIMESTAMP
RETURN CAST(STR AS TIMESTAMP);
데이터베이스에 연결할 때 CREATE FUNCTION 문을 한 번 실행하면 모든 쿼리 및 upade 문에서 사용할 수 있습니다.