我有一個類似於下面的表格。我試圖只選擇開始日期在當前月份中的行。這是我到目前爲止,但它不起作用。在本月內選擇日期SQL
SELECT *
FROM TABLE1
WHERE StartDate = MONTH(getdate())
如何僅選擇開始日期在當前月份中的值?
我有一個類似於下面的表格。我試圖只選擇開始日期在當前月份中的行。這是我到目前爲止,但它不起作用。在本月內選擇日期SQL
SELECT *
FROM TABLE1
WHERE StartDate = MONTH(getdate())
如何僅選擇開始日期在當前月份中的值?
使用該構建體以避免在開始日期列功能(例如一個月或一年)。這些功能將阻止任何正在使用的索引或統計信息/
SELECT *
FROM TABLE1
WHERE
StartDate >= DATEADD(month, DATEDIFF(month, 0, GETDATE()), 0)
AND StartDate < DATEADD(month, 1+DATEDIFF(month, 0, GETDATE()), 0)
這給起始日期的功能不會規模如預期的任何答覆。見error number 2 here。該過濾器現在不可用,並且索引/統計信息不能使用。每一行都將被查看錶掃描。
我個人更喜歡'DateAdd(mm,DateDiff(mm,0,Current_Timestamp)+ 1,0)',因爲這將'+ 1'作爲'DateAdd()'的一部分,這使得我認爲它更清晰一些。除此之外,最好的答案在這裏:) – gvee
@gvee:好點,更新清晰。 – gbn
@gbn你可以解釋一下,以便將來可以理解嗎? – user3147424
日期時間是一個月的數據類型 – user3147424
爲什麼接受downvoted和名譽掃地的答案嗎?你不關心性能或可擴展性嗎? – gbn
第一次嘗試工作還沒有回來,接受了你的答案的性能和可擴展性。 – user3147424