問題のある DATEADD
を実行するだけです 2 段階で、より粗い時間単位 (秒、分、時間など) から開始し、残りの時間単位を細かく設定します。
ただし、実際のカレンダーの計算が必要になるため、週や月のレベルに進むことは避けてください。システムで処理することをお勧めします。
以下の例では、(おそらく) ミリ秒単位の長い現在の継続時間を指定して、開始時間を計算する必要があります。
-- 期間が長いと、DATEADD に必要な整数引数がオーバーフローする可能性があります-- 分 (60000 ミリ秒) を減算してから残りのミリ秒を 2 段階減算します。 /60000, GETDATE()))コード> プレ>