SQL Server Management Studio 2008で作業しています。この形式のエントリが2007-01-01 00:00:00
のBATCH_DATEという列があります。 2007-01-31 00:00:00
形式に変更する必要があります。助けてください。SQL月の最初の日から最後の日にバッチ日の列を変更する方法
BhatiaAshishさんが私の質問に答えて、私はすでに彼/彼女の緑のチェックマークを押しました。この質問に答えます。
SQL Server Management Studio 2008で作業しています。この形式のエントリが2007-01-01 00:00:00
のBATCH_DATEという列があります。 2007-01-31 00:00:00
形式に変更する必要があります。助けてください。SQL月の最初の日から最後の日にバッチ日の列を変更する方法
BhatiaAshishさんが私の質問に答えて、私はすでに彼/彼女の緑のチェックマークを押しました。この質問に答えます。
DECLARE @Month Datetime
Set @month='2007-01-01 00:00:00'
SELECT DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,@month)+1,0))
、23:59:59として時間を与えないでしょうか?頼まれたものではない – Cato
あなたはそれぞれに30日追加することができます。
select dateadd(day, 30, batch_date)
問題が解決しない場合は、あなたがあなたの質問に何を意味するかを明確。
30日または29日しかない月を除いて、何かが私が探しているものです。 – Tjun
DECLARE @BATCH_DATE as datetime = '2007-01-01 00:00:00';
SET @BATCH_DATE = DATEADD(day,-1,DATEADD(month,1,@BATCH_DATE));
select @BATCH_DATE
Select dateadd(day, -1, dateadd(month, 1, batch_date))
ありがとうございました!これは29日か30日の期間にも有効でしょうか?その場合、あなたは私の質問に答えました。 – Tjun
はい、それは十分に公正な – BhatiaAshish
@NEER - それは、彼が質問ヘッダに言っているのです! Microsoftはこれを行うためのコマンドを発明した - 私はDAY-1日間を休みにして1ヶ月追加して1日をノックアウトするのが好都合だが、 – Cato
[SQLの月の最後の日を取得]の可能な複製(http://stackoverflow.com/questions/1051488/get-the-last-of-the-month-in-sql) – NEER