SQL Server-Datumsvergleiche nur basierend auf Monat und Jahr

Ich habe Probleme, die beste Methode zum Vergleichen von Daten in SQL basierend auf Monat und Jahr zu ermitteln.

Wir berechnen nach Datum und da die Abrechnung monatlich erfolgt, hat das Datum des Monats mehr Hindernisse verursacht.

Beispielsweis

DECLARE @date1 DATETIME = CAST('6/15/2014' AS DATETIME),
        @date2 DATETIME = CAST('6/14/2014' AS DATETIME)

SELECT * FROM tableName WHERE @date1 <= @date2

Das obige Beispiel würde keine Zeilen zurückgeben, da @ date1 größer als @ date2 ist. Also würde ich gerne einen Weg finden, den Tag aus der Gleichung herauszunehmen.

Ebenso betrübt mich die folgende Situation aus demselben Grund.

DECLARE @date1 DATETIME = CAST('6/14/2014' AS DATETIME),
        @date2 DATETIME = CAST('6/15/2014' AS DATETIME),
        @date3 DATETIME = CAST('7/1/2014' AS DATETIME)

SELECT * FROM tableName WHERE @date2 BETWEEN @date1 AND @date3

Ich habe die Daten inline konvertiert, um den ersten und den letzten Tag des Monats für das angegebene Datum abzuleiten.

SELECT * 
FROM tableName 
WHERE date2 BETWEEN
    DATEADD(month, DATEDIFF(month, 0, date1), 0) -- The first day of the month for date1
    AND
    DATEADD(s, -1, DATEADD(mm, DATEDIFF(m, 0, date2) + 1, 0)) -- The lastday of the month for date3

Es muss einen einfacheren Weg geben, dies zu tun. Irgendwelche Vorschläge

Antworten auf die Frage(4)

Ihre Antwort auf die Frage