2017-01-11 19 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

関連する問題