从H2数据库中提取年份和周数

时间:2017-01-11 10:55:03

标签: sql datetime h2

我正在尝试从H2数据库中提取年份和周数以使其符合ISO标准,这也应该按周汇总结果。我使用下面的SQL语句

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))

但是我得到以下异常

  

嵌套异常是org.h2.jdbc.JdbcSQLException:参数无效   计算“WEEK”,预计数:“1”;

1 个答案:

答案 0 :(得分:0)

在h2 db中,可以使用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