Comparaisons de dates SQL Server en fonction du mois et de l'année uniquement

J'ai de la difficulté à déterminer la meilleure façon de comparer les dates en SQL en fonction du mois et de l'année seulement.

Nous faire des calculs basés sur les dates et depuis la facturation se fait sur une base mensuelle à la date du mois qui a fait plus obstacle.

Par exemple

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

SELECT * FROM tableName WHERE @date1 <= @date2

L'exemple ci-dessus ne serait pas de retour de toutes les lignes depuis @date1 est supérieure à @date2. Je voudrais donc trouver un moyen de prendre le jour de l'équation.

De même, la situation suivante me donne du chagrin pour la même raison.

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

J'ai fait inline conversions les dates de dériver le premier jour et le dernier jour du mois pour la date spécifiée.

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

Il y a un moyen plus facile de le faire. Des suggestions?

source d'informationauteur Andy Evans