2013-11-15 73 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已经是最新型比转换是没有必要的。