当我在SQL Server中查询时,我发现datetime
在以下各列中以不同的格式显示
a.BATCHREG_TM1, a.BATCHREG_TM2, a.BATCHREG_TM3, a.BATCHREG_TM4, a.BATCHREG_TM5,
a.BATCHREG_TM6, a.BATCHREG_TM7, a.BATCHREG_TM8, a.BATCHREG_TM9, a.BATCHREG_TM10,
a.REG_TM, a.REWORK_TM,
要求:
示例:如果在燃料中为'U',则显示为柴油,如果为'G',则显示为汽油。
SELECT
a.DEVICE_ID, a.MES_SEQ, a.BODY_NO, a.STN_NM,
c.LINE_CD, a.[SHIFT], a.REG_TM, a.REWORK_TM, a.FIRST_STATUS,
CAST(TOR_VALUE1 AS float) / 100 AS TOR_VALUE1,
CAST(TOR_VALUE2 AS float) / 100 AS TOR_VALUE2,
CAST(TOR_VALUE3 AS float) / 100 AS TOR_VALUE3,
CAST(TOR_VALUE4 AS float) / 100 AS TOR_VALUE4,
CAST(TOR_VALUE5 AS float) / 100 AS TOR_VALUE5,
CAST(TOR_VALUE6 AS float) / 100 AS TOR_VALUE6,
CAST(TOR_VALUE7 AS float) / 100 AS TOR_VALUE7,
CAST(TOR_VALUE8 AS float) / 100 AS TOR_VALUE8,
CAST(TOR_VALUE9 AS float) / 100 AS TOR_VALUE9,
CAST(TOR_VALUE10 AS float) / 100 AS TOR_VALUE10,
CONVERT(INT, ANG_VALUE1) AS ANG_VALUE1,
CONVERT(INT, ANG_VALUE2) AS ANG_VALUE2,
CONVERT(INT, ANG_VALUE3) AS ANG_VALUE3,
CONVERT(INT, ANG_VALUE4) AS ANG_VALUE4,
CONVERT(INT, ANG_VALUE5) AS ANG_VALUE5,
CONVERT(INT, ANG_VALUE6) AS ANG_VALUE6,
CONVERT(INT, ANG_VALUE7) AS ANG_VALUE7,
CONVERT(INT, ANG_VALUE8) AS ANG_VALUE8,
CONVERT(INT, ANG_VALUE9) AS ANG_VALUE9,
CONVERT(INT, ANG_VALUE10) AS ANG_VALUE10,
a.BATCHREG_TM1,a.BATCHREG_TM2,a.BATCHREG_TM3,a.BATCHREG_TM4,a.BATCHREG_TM5,
a.BATCHREG_TM6,a.BATCHREG_TM7,a.BATCHREG_TM8,a.BATCHREG_TM9,a.BATCHREG_TM10,
a.BATCH_STATUS,a.TOTAL_STATUS,
a.REWORK_STATUS,a.REWORK_JOBFLAG,a.PLANT,a.SCAN_CHK,a.TOT_BATCH_NUM,
a.VIEWFLAG,a.TOOLSNETCHK,a.JOB_NUM,a.REWORKJOB_NUM,c.LH_RH,
c.DEVICE_STATUS, c.USE_219_CHK
[MODEL], [DRIVE],[BODY],[TRANSMISSION],[FUEL],[ENGINE],[BRAKESYSTEM],[AIRCON],[REGION]
FROM
[C].[dbo].[NUT] a
LEFT JOIN
[C].[dbo].[IF_ORDER] b ON a.body_no = b.body_no
LEFT JOIN
[C.[dbo].[REG] c ON a.device_id = c.device_id
OUTER APPLY
(VALUES (
SUBSTRING(b.[spec219], 2, 1),
SUBSTRING(b.[spec219], 3, 1),
SUBSTRING(b.[spec219], 4, 1),
SUBSTRING(b.[spec219], 7, 1),
SUBSTRING(b.[spec219], 8, 1),
SUBSTRING(b.[spec219], 9, 1),
SUBSTRING(b.[spec219], 13, 1),
SUBSTRING(b.[spec219], 28, 1),
SUBSTRING(b.[spec219], 218, 1)
)) v ([MODEL], [DRIVE],[BODY],[TRANSMISSION],[FUEL],[ENGINE],[BRAKESYSTEM],[AIRCON],[REGION])
WHERE
a.reg_tm >= '20200320000000' AND a.reg_tm <= '20200320015959'
ORDER BY
a.reg_tm
我尝试使用此代码:
case
when isnumeric(left(a.BATCHREG_TM1,4)) = 1 then cast(a.BATCHREG_TM1 as date)
when len(a.BATCHREG_TM1) = 10 then convert(date, a.BATCHREG_TM1, 103)
when len(a.BATCHREG_TM1) = 8 then convert(date, a.BATCHREG_TM1, 3)
when charindex('/',a.BATCHREG_TM1) = 0 and isnumeric(a.BATCHREG_TM1) = 0 then convert(date, a.BATCHREG_TM1, 106)
end as [date]
.----------------.-----------.---------------------.---------------------.--------------.--------------.--------------.------.--------.
| REG_TM | REWORK_TM | BATCHREG_TM1 | BATCHREG_TM2 | BATCHREG_TM3 | BATCHREG_TM4 | BATCHREG_TM5 | FUEL | ENGINE |
:----------------+-----------+---------------------+---------------------+--------------+--------------+--------------+------+--------:
| 20200320000001 | NULL | 2020-03-20:00:00:01 | NULL | NULL | NULL | NULL | U | J |
:----------------+-----------+---------------------+---------------------+--------------+--------------+--------------+------+--------:
| 20200320000001 | NULL | 20200319235441 | 20200319235443 | NULL | NULL | NULL | U | J |
:----------------+-----------+---------------------+---------------------+--------------+--------------+--------------+------+--------:
| 20200320000002 | NULL | 2020-03-20:00:00:03 | NULL | NULL | NULL | NULL | G | Z |
:----------------+-----------+---------------------+---------------------+--------------+--------------+--------------+------+--------:
| 20200320000002 | NULL | 2020-03-19:23:59:57 | 2020-03-20:00:00:01 | NULL | NULL | NULL | U | J |
:----------------+-----------+---------------------+---------------------+--------------+--------------+--------------+------+--------:
| 20200320000003 | NULL | 2020-03-20:00:00:00 | 2020-03-20:00:00:02 | NULL | NULL | NULL | U | J |
'----------------'-----------'---------------------'---------------------'--------------'--------------'--------------'------'--------'
就像我提到的,您需要在此处修复您的设计;这是only