Попытка получить последний день года хиджры В результате произошла ошибка преобразования Мой запрос прикреплен - PullRequest
0 голосов
/ 28 мая 2018

я пытаюсь получить последний день календаря хиджры,

Сначала я определяю свои запросы и логику, Этот запрос получает мои даты хиджры.

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.

надеется на ваше предложение спасибо

1 Ответ

0 голосов
/ 30 мая 2018

Вы можете попробовать это

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