2016-09-22 2 views
-1

Ich arbeite in SQL Server Management Studio 2008. Ich habe eine Spalte namens BATCH_DATE, die Einträge in diesem Format 2007-01-01 00:00:00 hat. Ich brauche diese in 2007-01-31 00:00:00 Format geändert werden. Bitte helfen Sie.SQL Wie ändere ich meine Batch_Date Spalte vom ersten Tag des Monats zum letzten Tag des Monats

BhatiaAshish beantwortete meine Frage und ich drückte bereits das grüne Häkchen für ihn/sie. Diese Frage wird beantwortet.

+0

@NEER - Das ist, was er in der Frage Header sagt! Microsoft erfand einen Befehl, um das zu tun - obwohl ich gerne TAG-1 Tage freigebe, einen Monat hinzufüge und einen Tag wegklopfe – Cato

+1

Mögliches Duplikat von [Holen Sie sich den letzten Tag des Monats in SQL] (http://stackoverflow.com/questions/1051488/get-the-last-day-of-the-month-in-sql) – NEER

Antwort

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

fair genug, gibt das nicht die Zeit als 23:59:59 obwohl? Nicht, wonach gefragt wurde – Cato

0

könnten Sie 30 Tage hinzufügen zu jedem:

select dateadd(day, 30, batch_date) 

Wenn das nicht funktioniert, dann klären, was Sie in Ihrer Frage bedeuten.

+0

Etwas wie ist genau das, was ich suche, außer was ist mit den Monaten, die nur 30 Tage oder 29 haben? – 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

Vielen Dank! Funktioniert das auch an Monaten mit 29 oder 30 Tagen? In diesem Fall hast du meine Frage beantwortet. – Tjun

+0

Ja, es wird funktionieren – BhatiaAshish

Verwandte Themen