415 Stimmen

Wie kann ich den ersten Tag eines Monats in SQL auswählen?

Ich muss nur den ersten Tag des Monats einer bestimmten DateTime-Variablen auswählen.

Ich weiß, dass dies mit dieser Art von Code recht einfach zu bewerkstelligen ist:

select CAST(CAST(YEAR(@mydate) AS VARCHAR(4)) 
+ '/' + CAST(MONTH(@mydate) AS VARCHAR(2)) + '/01' AS DATETIME)

Aber leider ist das nicht sehr elegant und auch nicht sehr schnell.

Gibt es eine bessere Möglichkeit, dies zu tun? Ich verwende SQL Server 2008.

1voto

divya Punkte 11

Versuchen Sie, die folgende Abfrage auszuführen:

SELECT DATE_ADD(DATE_ADD(LAST_DAY(CURRENT_DATE-INTERVAL 1 DAY),INTERVAL 1 DAY),INTERVAL -1 MONTH)

1voto

user692942 Punkte 15617

Wenn Sie SQL Server 2012 oder höher verwenden;

SELECT DATEADD(MONTH, -1, DATEADD(DAY, 1, EOMONTH(GETDATE())))

1voto

Pradeep Thakur Punkte 11

Hier können wir die folgende Abfrage verwenden, um das erste Datum des Monats und das letzte Datum des Monats zu ermitteln.

SELECT DATEADD(DAY,1,EOMONTH(Getdate(),-1)) as 'FD',Cast(Getdate()-1 as Date)
as 'LD'

1voto

Ang Li Punkte 11

Wenn Sie dies heute betrachten und SQL Server 2012 oder neuer verwenden, steht Ihnen die Funktion EOMONTH zur Verfügung, die die Dinge einfacher macht:

SELECT DATEADD(day, 1, EOMONTH(DATEADD(month, -1, GETDATE()))) as firstdateofmonth

Sie können GETDATE() durch eine beliebige Datumsvariable ersetzen.

1voto

Abdul Saleem Punkte 9091
SELECT DATEADD (DAY, -1 * (DAY(GETDATE()) - 1), GETDATE())

.....................................................................

Wenn Sie die Uhrzeit nicht benötigen, konvertieren Sie sie in DATE oder wenn Sie die Uhrzeit auf 0:00:00 setzen möchten, konvertieren Sie sie in DATE und dann zurück in DATETIME.

SELECT CONVERT (DATETIME,  
CONVERT (DATE, DATEADD (DAY, -1 * (DAY(GETDATE()) - 1),
GETDATE())))

Ändern Sie GETDATE() auf das von Ihnen gewünschte Datum

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X