У меня есть значения даты и времени, хранящиеся в поле в виде строк.Они хранятся в виде строк, потому что так они поступают по проводам, а необработанные значения используются в других местах.
Для создания отчетов я хочу преобразовать строку пользовательского формата (ггггммддччмм) в поле даты и времени в представлении,Мои отчеты будут использовать вид и работать с реальными значениями даты и времени.Это значительно упростит запросы по диапазонам дат.
Как мне выполнить это преобразование?Я создал представление, но не могу найти способ преобразовать строку в дату и время.
Спасибо!
Обновление 1 -
Вот SQL, который у меня есть до сих пор.Когда я пытаюсь выполнить, я получаю ошибку преобразования: «Преобразование не удалось при преобразовании даты и времени из символьной строки».
Как обрабатывать нули и строки даты и времени, в которых отсутствует часть времени (только ггггммдд)?
SELECT
dbo.PV1_B.PV1_F44_C1 AS ArrivalDT,
cast(substring(dbo.PV1_B.PV1_F44_C1, 1, 8)+' '+substring(dbo.PV1_B.PV1_F44_C1, 9, 2)+':'+substring(dbo.PV1_B.PV1_F44_C1, 11, 2) as datetime) AS ArrDT,
dbo.MSH_A.MSH_F9_C2 AS MessageType,
dbo.PID_A.PID_F3_C1 AS PRC,
dbo.PID_A.PID_F5_C1 AS LastName,
dbo.PID_A.PID_F5_C2 AS FirstName,
dbo.PID_A.PID_F5_C3 AS MiddleInitial,
dbo.PV1_A.PV1_F2_C1 AS Score,
dbo.MSH_A.MessageID AS MessageId
FROM dbo.MSH_A
INNER JOIN dbo.PID_A ON dbo.MSH_A.MessageID = dbo.PID_A.MessageID
INNER JOIN dbo.PV1_A ON dbo.MSH_A.MessageID = dbo.PV1_A.MessageID
INNER JOIN dbo.PV1_B ON dbo.MSH_A.MessageID = dbo.PV1_B.MessageID