私のテーブルにはサイクルとアイドルの2つのフィールドがあり、どちらもnvarchar(50)です。 TSQLを使用して特定のプログラム番号に基づいて各フィールドの合計を取得しようとしています。以下はデータの小さな例です。キャストは1つのフィールドで動作しますが、他のフィールドでは動作しません。
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
したがって、たとえば、ProgramNo 3998_BOTH_OPPS.MPFと9491_OPP1.MPFため
を全サイクル時間とアイドル時間を取得する。これは、私のクエリです...
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
それだけで正常に動作しますCycleTimeの場合、IdleTimeにエラーが発生する:
"文字列から日付や時刻を変換すると変換に失敗しました"
前もって感謝します。
それはあなたがそのフィールドのレコードにいくつかの不良データを持っていることを意味します。変換できないもの。 – HLGEM