MySql Abfrage in MSSsql Syntax umwandelen

09/10/2008 - 09:20 von Carsten Ilwig | Report spam
Hallo Leute,
ich habe einen MySQL-Code, den ich aber für den MS-SQl-Server benötige:

DATEDIFF(`geburtstag` + INTERVAL (YEAR(CURRENT_DATE) - YEAR(`geburtstag`) +
IF(DATE_FORMAT(CURRENT_DATE, "%m%d") > DATE_FORMAT(`geburtstag`, "%m%d"), 1,
0))
YEAR, CURRENT_DATE) AS `days_to_birthday`

Bei der Konvertierung bin ich an den Befehlen "Interval" und "Date_Format"
gescheitert.
Kann mir da jemand bitte weiterhelfen?
Wie müsste diese Zeile für den MS-SQl-Server aussehen?
Soweit bin ich selbst gekommen:

DATEDIFF(geburtsdatum + INTERVAL (DATEPART(year,getDate()) -
DATEPART(year,geburtsdatum) +
IF(DATE_FORMAT(getDate(), "%m%d") > DATE_FORMATgeburtsdatum, "%m%d"), 1, 0))
year, getDate()) AS days_to_birthday

Vielen Dank im Voraus
Carsten
 

Lesen sie die antworten

#1 Thomas Griepentrog
09/10/2008 - 14:34 | Warnen spam
Hallo Carsten,

Wie müsste diese Zeile für den MS-SQl-Server aussehen?
Soweit bin ich selbst gekommen:

DATEDIFF(geburtsdatum + INTERVAL (DATEPART(year,getDate()) -
DATEPART(year,geburtsdatum) +
IF(DATE_FORMAT(getDate(), "%m%d") > DATE_FORMATgeburtsdatum, "%m%d"), 1,
0))
year, getDate()) AS days_to_birthday

Vielen Dank im Voraus
Carsten



Für Date_Format kannst du die TSQL-Funktion DATEPART verwenden
(http://technet.microsoft.com/de-de/...74420.aspx),
(bsp: SELECT DATEPART(year, 0), DATEPART(month, 0), DATEPART(day, 0);

Und für die INTERVAL-Methode probiere mal DATEADD aus.

Thomas

PS: Làuft das in einer SP, einer Select-Abfrage oder wie?

Ähnliche fragen