sql >> Database >  >> RDS >> Sqlserver

SQL Server-datumvergelijkingen op basis van alleen maand en jaar

Om ongelijkheden aan te pakken, zoals tussen, converteer ik datum/tijden graag naar een YYYYMM-representatie, hetzij als een string of een geheel getal. Voor dit voorbeeld:

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;

Ik zou de vraag schrijven als:

SELECT *
FROM tableName
WHERE year(@date2) * 100 + month(@date2) BETWEEN year(@date1) * 100 + month(@date1) AND
                                                 year(@date3) * 100 + month(@date1);


  1. Hoe zorg je ervoor dat er geen gaten in auto_increment-nummers komen?

  2. Waarom is OracleDataAdapter.Fill() erg traag?

  3. Kan Postgres niet starten

  4. MySQL of voorwaarde