试图获取回历年的最后一天 导致转换错误 我的查询已附上



我正在尝试获得回历的最后一天,

首先,我定义我的查询和逻辑, 这个查询获取我的回历日期。

SELECT top 1 convert(date,dateHijri,103) , datepart(year,try_convert(date,dateHijri,103))
from Item

它给了我结果,

1440-07-19 , 1440

此查询获取格鲁吉亚日历的最后日期,

select top 1 DATEADD(MILLISECOND, -3,DATEADD(YEAR, DATEDIFF(YEAR, 0, GETDATE()) + 1, 0)) 'Last Day of Georgian Year'
Result :  2018-12-31 23:59:59.997

现在,我试图获得回历年的最后一天的最后一个查询尝试合并第一个和第二个查询,

select top 1 DATEADD(MILLISECOND, -3,DATEADD(YEAR, DATEDIFF(YEAR, 0, convert(date,dateHijri,103)) + 1, 0)) as 'Last Day of Hijri Year'  from Item 
Error:The conversion of a date data type to a datetime data type resulted in an out-of-range value.

希望您的建议谢谢

你可以试试这个

select top 1 DATEADD(MILLISECOND, -3, CONVERT(DATETIME, CONVERT(VARCHAR(4), YEAR(convert(date,dateHijri,103)) + 1)+'0101', 131)) as 'Last Day of Hijri Year'  from Item 

最新更新