2016-09-22 4 views
-1

SQL Server Management Studio 2008で作業しています。この形式のエントリが2007-01-01 00:00:00のBATCH_DATEという列があります。 2007-01-31 00:00:00形式に変更する必要があります。助けてください。SQL月の最初の日から最後の日にバッチ日の列を変更する方法

BhatiaAshishさんが私の質問に答えて、私はすでに彼/彼女の緑のチェックマークを押しました。この質問に答えます。

+0

@NEER - それは、彼が質問ヘッダに言っているのです! Microsoftはこれを行うためのコマンドを発明した - 私はDAY-1日間を休みにして1ヶ月追加して1日をノックアウトするのが好都合だが、 – Cato

+1

[SQLの月の最後の日を取得]の可能な複製(http://stackoverflow.com/questions/1051488/get-the-last-of-the-month-in-sql) – NEER

答えて

0
DECLARE @Month Datetime 
Set @month='2007-01-01 00:00:00' 
SELECT DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,@month)+1,0)) 
+0

、23:59:59として時間を与えないでしょうか?頼まれたものではない – Cato

0

あなたはそれぞれに30日追加することができます。

select dateadd(day, 30, batch_date) 

問題が解決しない場合は、あなたがあなたの質問に何を意味するかを明確。

+0

30日または29日しかない月を除いて、何かが私が探しているものです。 – Tjun

0
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 
0
Select dateadd(day, -1, dateadd(month, 1, batch_date)) 
+0

ありがとうございました!これは29日か30日の期間にも有効でしょうか?その場合、あなたは私の質問に答えました。 – Tjun

+0

はい、それは十分に公正な – BhatiaAshish

関連する問題