模型未在hibernate中映射为日期sql查询

时间:2017-06-19 06:46:45

标签: java mysql sql-server hibernate jpa

我需要显示一个关于日期列的值,只需将月份值传递给Jan为01,将02传递为2月。我尝试使用hibernate查询,但它显示错误。

@Query("select to_char(calendarDate,'mm'),dayType from Calendar 
where calendarDate like '%?1%'")
List<String>findDayType(int callist);

我正在

  

模型未在hibernate中映射

上述查询的

错误

3 个答案:

答案 0 :(得分:0)

将DATE用作类型的重点是数据库可以有效地查询数据。这与将数字存储为INT而不是VARCHAR的原因相同 - 因此引擎可以做出明智的决策。如果在日期中使用LIKE运算符,则会失去选择正确数据类型的好处。

使用MONTH允许SQL获取它知道遵守DATE数据格式的列的月份部分。当你使用LIKE时,它正在进行逐个字符的模式匹配,这样做的成本更高,速度也更慢。

如果LIKE足够,则MONTH()将不存在。对于DATE查询,任何内置函数始终都是LIKE的选择。

答案 1 :(得分:0)

当月

SELECT DATENAME(mm, GETDATE()) 'English Month Name'

再过几个月

DECLARE @Mth smallint
SET @Mth = 11
SELECT DateName(mm,DATEADD(mm,@Mth,-1)) as [MonthName]

答案 2 :(得分:0)

这是正确的查询,现在它正在运行:

@Query("select to_char(calendarDate,'mm'),dayType from Calendar where calendarDate =?1")
List<String>findDayType(int callist);