運行到一個小問題。 我有一個基於日期的scrpit。我需要的是檢索14天前的數據,不包括它運行的日期。 例子;日期運行12/15/2016應檢索數據之間12/1/1/2016 - 12/14/2016。 我遇到的問題是它的運行日期結束。見下面我設定的標準。SQL Server日期設置
where a.UF_1 <> '' and (DATEDIFF(dd, a.TRANSACTION_DATE, getdate()) <14)
任何幫助表示讚賞。 謝謝。
運行到一個小問題。 我有一個基於日期的scrpit。我需要的是檢索14天前的數據,不包括它運行的日期。 例子;日期運行12/15/2016應檢索數據之間12/1/1/2016 - 12/14/2016。 我遇到的問題是它的運行日期結束。見下面我設定的標準。SQL Server日期設置
where a.UF_1 <> '' and (DATEDIFF(dd, a.TRANSACTION_DATE, getdate()) <14)
任何幫助表示讚賞。 謝謝。
你的意思是這樣的:
where a.UF_1 <> '' and cast(a.TRANSACTION_DATE as date) between cast(getdate()-14 as date) and cast(getdate()-1 as date)
。
我假設a.UF_1
或a.TRANSACTION_DATE
都不能爲空。否則處理這個。
是的,這可以解決問題。謝謝! – Messi
select * from yourTable
where datecolumn < getdate()
and datecolumn >=dateadd(dd,-14,getdate())
OR。 。 。 。
declare @someDateVariable datetime - '12/15/2016'
select *
from yourTable
where cast(datecolumn as date) < cast(@someDateVariable as date)
and datecolumn >= dateadd(dd,-14,@someDateVariable)
'''getdate()'''返回當前時間戳記,因此任何在TRANSACTION_DATE之間的記錄都會包含在結果中。因此,而不是getdate(),如果你使用'''convert(varchar,getdate(),101)''',那就應該有效。 – Anand