Я пишу сложный запрос, и у меня возникают некоторые проблемы с расчетом от случая выражения (спасибо). По сути, благодаря некоторой большой помощи на этом сайте мне удалось решить другую проблему, используя упорядоченную таблицу, но теперь один из операторов выбора, которые я ранее использовал, больше не работает с OT.расчет длительности (дата - дата) от случая выражения
Я получаю сообщение об ошибке:
Conversion failed when converting date and/or time from character string
Ядра проблемы заключается в том, что я хочу, чтобы вычислить продолжительность вычитания даты начала с даты окончания. Код, который я ранее использовал
select
cast((CASE
WHEN ap.startLIKE '%[^0-9]%'
THEN CAST(ap.end as datetime)
ELSE NULL
END)
-
(CASE
WHEN ap.start LIKE '%[^0-9]%'
THEN CAST(ap.start as datetime)
ELSE NULL
END) as time) as Duration,
ap.start, ap.end, ap.description
from
Table as AP
group by
ap.start, ap.end, ap.description
, но когда я изменил рисовать эту информацию из упорядоченной таблицы как:
Select
ot.starttime as "Start Time",
ot.endtime as "End Time",
ot.description "Description",
ot.entrynumber as "ID Number",
cast((CASE
WHEN ot.endtime LIKE '%[^0-9]%'
THEN CAST(ot.endtime as datetime)
ELSE NULL
END)
-
(CASE
WHEN ot.starttime LIKE '%[^0-9]%'
THEN CAST(ot.starttime as datetime)
ELSE NULL
END) as time) as duration
From
OrderedTable as OT
group by
ot.starttime, ot.endtime, ot.description, ot.entrynumber
order by
ot.endtime
Я получаю сообщение об ошибке. Раньше применение предложения group by удалило ошибку, но не из упорядоченной таблицы.
Настоящим неуверенным в том, что вызывает проблему, поскольку я пытался устранить преобразование на сегодняшний день постоянно, я был бы признателен за любую помощь.
Исходной проблемой является то, что поля даты на сервере находятся в формате nvarchar, а не в datetime, я пытался обойти это.
Дело выражение, а не дело. – jarlh
Очевидно, что 'OrderedTable' имеет строки с разными форматами дат, которые не выполняют преобразование. –
Исходные данные одинаковы, однако, ap.starttime = ot.starttime. – Raven