2013-11-15 80 views
0

我正在處理SQL數據庫並編寫查詢。
一個條件應該限制的最新數據是from datetill date,列數據類型是DMDATE:datetime之間,轉換爲數據類型DMDATE:datetime

查詢:

Select * from dbo.invoices where invoicedate between dateadd(d, -3, getdate()) and getdate() 

它總是空的,但我應該有3天前的數據。

+0

也許downvoter可以解釋爲什麼他不喜歡這個問題。 –

+0

術語「sql數據庫」含糊不清。我可以通過使用getdate()來說明你的意思是sql server,但你應該在文本或標籤中指定。將鼠標懸停在sql標籤上以獲取更多信息。 –

回答

1

getdate()返回日期和時間,所以時間片可能導致您的問題。將它們轉換爲日期類型應該可以修復它。

Select *
from dbo.invoices
where cast(invoicedate as date) between CAST(dateadd(d, -3, getdate()) as date) and CAST(getdate() as date)

如果您invoicedate已經是最新型比轉換是沒有必要的。