Помогите мне Stackoverflow, я близок к тому, чтобы все это «HULK SMASH» на моей клавиатуре по этой проблеме. Я тщательно изучил, но я, очевидно, не понимаю, что правильно.Невозможно конвертировать из даты Julian INT в обычный TSQL Datetime
Я работаю с юлианскими датами, на которые ссылается проприетарный инструмент (Platinum SQL?), Хотя я работаю в SQL 2005. Я могу преобразовать их «специальную» версию Julian в datetime, когда запускаю оператор select. К сожалению, он не будет вставляться в столбец datetime, я получаю следующую ошибку при попытке:
Преобразование типа данных символа в тип данных даты и времени приводило к значению даты и времени вне диапазона.
Поэтому я не могу установить критерии даты и времени для запуска отчета из хранимой процедуры.
Оригинал Значение: 733416 Эквивалент Календарь Значение: 01.09.2009
Ниже мой код ... Я так близко, но я не могу достаточно посмотреть, что случилось, мне нужно мое новообращенного заявление фактически преобразуем значение Julian (733416) в совместимое значение TSQL DATETIME.
SELECT
org_id,
CASE WHEN date_applied = 0 THEN '00-00-00'
ELSE convert(char(50),dateadd(day,date_applied-729960,convert(datetime, '07-25-99')),101)
END AS date_applied,
CASE WHEN date_posted = 0 THEN '00-00-00'
ELSE convert(char(50),dateadd(day,date_posted-729960,convert(datetime, '07-25-99')),101)
END AS date_posted
from general_vw
Довольно уверен, что мой ответ устраняет вашу проблему. Если это так, пожалуйста, отметьте это как принятый ответ, иначе, пожалуйста, дайте мне знать, как мой ответ не совсем помогает. –