今日の固定時間に列の日付を連結しようとしていますが、CAST
はすべてDATETIME
となります。日付と時刻を連結したDATETIMEをキャスト
固定時間は午前5時30分です。
私が使用している日付欄には、調整が必要です終了何かが実行された日時。私は開始日時を使用したいと思います。
開始日時は独自の列として使用できませんが、処理時間が秒単位である別の列があるため、DATEADD
を使用して終了日時を開始日にロールバックできます/時間。
ここで完全な声明だ:
CAST(CONVERT(VARCHAR(10), DATEADD(ss,-ConfTask.[LastExecutedDuration], ConfTask.[LastExecutedDate]), 103) + ' ' + '05:30' as DATETIME)
ここで私が受けていたエラーメッセージです:
をdatetimeデータ型にvarcharデータ型の変換を行うに を結果は範囲値になります。
私は問題を調査するためにこれらのステートメントをテストしようとしましたが、それらはすべてが自分でOKを実行します。
CAST(CONVERT(VARCHAR(10), GETDATE(), 103) + ' ' + '05:30' as DATETIME)
CAST('2017-03-02' + ' ' + '05:30' as DATETIME)
DATEADD(ss,-ConfTask.[LastExecutedDuration], ConfTask.[LastExecutedDate])
私はこの問題を回避する方法については固執しています。どんな助けでも大歓迎です。
'ConfTask。[LastExecutedDuration]'は 'TIME'、' INT'、 'NUMERIC()'の値として保存されています。 ? – 3BK
'Decimal(18、0)'として保存されています –
これは特定の形式 '(103)'に変換されているという事実に接続できません。あなたの例では、 'GETDATE()'を '(103)'に変換しましたが、 'ConfTask。[LastExecutedDate])'に変換しなかったからです。あなたは '(101)'のような別の日付書式で実行しようとしましたか、あるいは特定の形式をまったく提供していませんか? (うまくいけば愚かな質問ではない...) – 3BK