내 테이블에 Cycle과 Idle이라는 두 개의 필드가 있으며 둘 다 nvarchar (50)이며 둘 다 시간을 포함합니다. TSQL을 사용하여 특정 프로그램 번호를 기반으로 각 필드의 합계를 얻으려고합니다. 다음은 데이터의 작은 예입니다. 캐스트는 다른 필드가 아닌 하나의 필드에서만 작동합니다.
Id ProgramNo Cycle Idle
209702 3998_BOTH_OPPS.MPF 00:02:41 00:00:25
209703 472_7580_OPP1.MPF 00:02:08 00:01:44
209704 3998_BOTH_OPPS.MPF 00:00:27 00:00:11
209705 3998_BOTH_OPPS.MPF 00:00:00 00:00:00
209706 3998_BOTH_OPPS.MPF 00:00:01 00:01:40
209707 9491_OPP1.MPF 00:00:00 00:00:00
209708 9491_OPP1.MPF 00:00:01 00:00:04
209709 9491_OPP1.MPF 00:01:05 00:00:19
그래서 예를 들어, 그것은 잘 작동
SELECT
ProgramNo,
cast(dateadd(MILLISECOND, sum(datediff(MILLISECOND, 0, cast(Cycle AS DATETIME))), 0) AS TIME) AS CycleTime,
cast(dateadd(MILLISECOND, sum(datediff(MILLISECOND, 0, cast(Idle AS DATETIME))), 0) AS TIME) AS IdleTime
FROM Cycle
GROUP BY ProgramNo
이 내 쿼리입니다 전체 사이클 시간과 유휴 시간 ProgramNo 3998_BOTH_OPPS.MPF 및 9491_OPP1.MPF
을 ... 수 CycleTime에서 IdleTime에 대한 오류가 발생합니다.
"문자열에서 날짜 및/또는 시간을 변환 할 때 변환에 실패했습니다. . "
의견이 있으십니까? 미리 감사드립니다.
이는 해당 필드의 레코드에 잘못된 데이터가 있음을 의미합니다. 변환 할 수없는 것. – HLGEM