Sam: SQL, Datumsfunktionen

Beitrag lesen

yo,

neben der 1 war auch noch ein Logik-fehler bei mir oder sind eventuell noch mehrere versteckt. hier mal die letzte, die ich schnell ausprobiert habe...

genau ;-)
Meine Version ist

SELECT
CAST(
CASE
WHEN CAST(MONTH(GETDATE()) AS INT) >= 2 AND CAST(MONTH(GETDATE()) AS INT) < 8
THEN '01.08.' + CAST(YEAR(GETDATE()) AS CHAR)
ELSE
CASE
WHEN CAST(MONTH(GETDATE()) AS INT) = 1
THEN '01.02.' + CAST(YEAR(GETDATE()) AS CHAR)
ELSE '01.02.' + CAST(YEAR(GETDATE()) + 1 AS CHAR)
END
END
AS DATETIME) AS halbjahr

Ok, etwas umständlich ... aber fnktioniert auch  :-)
Merci!
Sam

select
CASE
  WHEN GETDATE() < '01.02.' + CAST(YEAR(GETDATE()) AS CHAR)
  THEN '01.02.' + CAST(YEAR(GETDATE()) AS CHAR)
  WHEN GETDATE() BETWEEN '01.02.' + CAST(YEAR(GETDATE()) AS CHAR) AND '01.08.' + CAST(YEAR(GETDATE()) AS CHAR)
  THEN '01.08.' + CAST(YEAR(GETDATE()) AS CHAR)
  ELSE '01.02.' + CAST(YEAR(GETDATE()) + 1 AS CHAR)
END

Ilja