У меня есть следующий запрос:Преобразование alphnumeric к типу даты и используя DATEDIFF
Select MFG.MFGNUM_0, AUH.ID1_0 , AUL.SEQ_0 , AUL.OVAL_0,
AUL.NVAL_0 , AUL.COL_0, AUH.EVT_0 ,
MFG.MFGTRKFLG_0, MFG.MFGSTA_0 , AUH.ADOUSR_0,
AUH.HOU_0 , CAST(REPLACE(AUL.OVAL_0,'/','') as INT) ,
(CAST(REPLACE(AUL.NVAL_0,'/','') as INT))
from x3v6.CICPRODAVC.AUDITH AUH
left outer join x3v6.CICPRODAVC.MFGHEAD MFG on MFG.MFGNUM_0 = AUH.ID1_0
left outer join x3v6.CICPRODAVC.AUDITL AUL on AUH.SEQ_0 = AUL.SEQ_0
where STA_0 = 2 and TBL_0 = 'MFGHEAD' and
(AUL.COL_0 = 'ENDDAT') and MFG.MFGTRKFLG_0 < 4
Который возвращает:
MFGNUM_0 ID1_0 SEQ_0 OVAL_0 NVAL_0 COL_0 EVT_0 MFGTRKFLG_0 MFGSTA_0 ADOUSR_0 HOU_0 (No column name) (No column name)
WO001170 WO001170 45088 29/01/2017 28/01/2017 ENDDAT UPDATE 1 1 MIR 093734 29012017 28012017
Я хочу сделать вычитание между 2 датами (NVAL) и OVAL , но поля являются буквенно-цифровыми, и я не могу успешно использовать CAST/CONVERT
и DATEDIFF
, чтобы найти правильное решение. Я попытался использовать REPLACE
и сделать вычитание, но это тоже не сработало.
Версия SQL-SRV - 2012R.
У вас есть пример того, что NVAL и OVAL выглядят? Всегда ли они форматируются как: MM/DD/YYYY? –
DD/MM/YYYY - формат –