大家好,我想在今天的日期之前收到发票和客户的搜索数据
我正在使用GETDATE()
例如两个表
1个客户
- ID int
- Name Varcher
2发票
- ID int
- ClientID int
- date Datetime
- Total money
查询
Select *
from client c
inner join invoice i on c.id = i.ClientID
where i.date = getdate()
结果
nothing
但我今天有一些数据有相同的日期
答案 0 :(得分:1)
尝试按照条件
进行操作WHERE DateDiff(dd, OrderDate, getdate()) = 0
or
WHERE Convert(varchar(20), OrderDate, 101) = Convert(varchar(20), getdate(), 101)
所以你的回答是
Select *
from client c
inner join invoice i on c.id = i.ClientID
WHERE DateDiff(dd, i.date, getdate()) = 0
答案 1 :(得分:1)
单程
where i.date >= DATEADD(dd, DATEDIFF(dd, 0, GETDATE()), 0),
and i.date < DATEADD(dd, DATEDIFF(dd, 0, GETDATE())+1 , 0)
答案 2 :(得分:1)
GETDATE()返回日期和时间。
我们需要将日期定在今天的开头。
SELECT *
FROM client c
INNER JOIN invoice i
ON c.id = i.ClientID
WHERE i.date >= CAST(FLOOR(CAST(GETDATE() AS float)) AS DATETIME)
答案 3 :(得分:0)
尝试使用DATEPART而不仅仅是getdate()(只会完全匹配日期):
WHERE DATEPART(dy, GETDATE()) - DATEPART(dy, i.date) <= 1
这将为您提供单日范围内的所有日期。
答案 4 :(得分:0)
Select * from client c left join invoice i
on c.id = i.ClientID
where i.date = getdate()