0

たとえば、2列のデータがあります

Row_Date    
2013-01-03-00:00:00

Starttime   
130 

私が必要とするのは、開始時間を取り、これを次のdate_timeような時間と分のフィールドの列に入れることです

Datetime
2013-01-03-01:30:00

現時点で管理できるのは、次のコマンドを使用して時間を入力することだけです(これは他の場所で見つけました)

,CAST(DATEADD(HOUR, StartTime/100, CONVERT(char(12), ROW_DATE, 112))
                                                       AS DATETIME) AS DATE_TOME

starttime を 100 で割ると分ではなく時間が残るため、これが機能しない理由は理解できますが、分を含める方法がわかりません。

私が見つけたが動作しなかった別のコマンドは次のとおりです。

,CAST(CAST(row_date AS VARCHAR(8)) + ' ' 
 + STUFF(RIGHT( '000' + CAST(StartTime AS VARCHAR(4)), 4), 3,0, ':') AS DATETIME)

繰り返しますが、これは別の場所で見つかりましたが、次のエラーが発生します。

文字列から日時を変換する際に変換に失敗しました。

4

1 に答える 1

2
CAST(DATEADD(MINUTE, 60 * FLOOR(StartTime/100) + StartTime % 100, CONVERT(char(12), ROW_DATE, 112)) AS DATETIME) AS DATE_TOME
于 2013-01-04T13:37:22.327 に答える