2017-01-11 4 views
0

H2 데이터베이스에서 연도와 주 번호를 추출하여 ISO 준수를 얻으려고합니다. 또한 주 단위로 결과를 집계해야합니다. 아래의 SQL 문을 사용하고 있습니다.H2 데이터베이스에서 연도와 주 번호를 추출하십시오.

SELECT CONCAT(YEAR (PARSEDATETIME(TRUNC(COL_NAME),'yyyy-MM-dd hh:mm:ss')), \'-W\', WEEK(PARSEDATETIME(TRUNC(COL_NAME),'yyyy-MM-dd hh:mm:ss'))) 

H2 데이터베이스의 경우 올바른 방법입니까? H2에서 사용할 수있는 다른 방법이나 표준 기능이 있습니까? 이 결과는 몇 주 내에 내 집계됩니까?

또한 나는 월요일에 일주일의 시작 일을 설정할 내가

상자의 예외가 조직되는 다음과 같은 예외를 얻고있다 그러나 그러므로 나는

SELECT CONCAT(YEAR (PARSEDATETIME(TRUNC(COL_NAME),'yyyy-MM-dd hh:mm:ss')), \'-W\', WEEK(PARSEDATETIME(TRUNC(COL_NAME),'yyyy-MM-dd hh:mm:ss'), 1)) 

으로 쿼리를 변경하고있다. h2.jdbc.JdbcSQLException : 유효하지 않은 매개 변수 "WEEK"에 대해 계산, 예상 개수 : "1";

+0

단순히 'FORMATDATETIME (col_name,'yyyy-ww ');'? 하지만 H2가 ISO 주와 년을 지원한다고 생각하지 않습니다. '2016-01-01'은 ISO 주 53 –

답변

0

h2db에서 EXTRACT 명령을 사용하여 주 또는 연도를 추출 할 수 있습니다. 주, 유형 추출하려면

SELECT EXTRACT(WEEK FROM COLUMN NAME) FROM TABLE NAME 

을 그리고 올해, 유형을 추출 :

SELECT EXTRACT(YEAR FROM COLUMN NAME) FROM TABLE NAME 

열의 TIMESTAMP 값해야 YYYY-MM-DD HH 같은 표준 형식 : MM : SS.