我正在研究SQL数据库并编写查询
一个条件应该将日期的数据限制在from date
和till date
之间,列数据类型为DMDATE:datetime
,
查询:
Select * from dbo.invoices where invoicedate between dateadd(d, -3, getdate()) and getdate()
它总是空的,但我应该有3天前的数据。
答案 0 :(得分:1)
getdate()返回日期和时间,因此时间段可能会导致您的问题。将它们转换为日期类型应该修复它。
Select *
from dbo.invoices
where cast(invoicedate as date) between CAST(dateadd(d, -3, getdate()) as date) and CAST(getdate() as date)
如果您的发票已经是日期类型,则不需要该演员。