SQL Server 2008の場合:結果をフィルタリングし、特定の日付と同じ月にある結果のみを返す最良の方法は何ですか?datetimeを指定すると、その日時の月ごとに結果をフィルタリングします
-- set up test data
DECLARE @TABLE1 AS TABLE (
ID INT,
STRING VARCHAR(MAX),
DATECOLUMN DATETIME
)
INSERT INTO @TABLE1
SELECT
0 ID,
'TABLE1 0' STRING,
CONVERT(DATETIME, '2016-10-13 12:45:00', 102) DATECOLUMN
UNION ALL SELECT 1, 'TABLE1 1', CONVERT(DATETIME, '2016-9-13 12:45:00', 102)
UNION ALL SELECT 2, 'TABLE1 2', CONVERT(DATETIME, '2016-10-1 00:00:00', 102)
UNION ALL SELECT 3, 'TABLE1 3', CONVERT(DATETIME, '2016-10-31 23:59:59', 102)
-- set up constraint
DECLARE @SOMEDATE DATETIME = CONVERT(DATETIME, '2016-10-13 12:45:00', 102)
-- filter
SELECT * FROM @TABLE1
WHERE MONTH(DATECOLUMN) = MONTH(@SOMEDATE)
はこれが最善の方法です:
私が思い付くことができる最高のは、次のでしょうか?
テーブルに異なる年のデータがある場合に誤検出を避けるには、同じ年にチェックする必要があります。 – Jayvee