大家好我想要发票和客户端的搜索数据到今天我正在使用DateDiff()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 DateDiff(dd, i.date, getdate()) = 0
我希望在当前月份的特定日期和从日期时间开始的当前年份中选择查询 如果当前月份是08年和当前年份2010,我想写一个月的任何一天 感谢每个人帮助我
答案 0 :(得分:3)
这里有一种方法也可以使用索引
where i.date >= DATEADD(Day, DATEDIFF(Day, 0, GETDATE()), 0)
and i.date < DATEADD(Day, DATEDIFF(Day, 0, GETDATE()), 1)
答案 1 :(得分:1)
从当前月份和年份中的特定日期选择记录的最简单方法是声明分配给指定日期,月份和年份的日期时间变量,并将查询中的getdate()
替换为变量 - 如这样:
declare @date datetime
select @date = '10-Aug-2010'
Select * from client c
inner join invoice i on c.id = i.ClientID
WHERE DateDiff(dd, i.date, @date) = 0
编辑:要针对当月的指定日期运行查询,请尝试以下操作:
declare @day integer
select @day = 10
Select * from client c
inner join invoice i on c.id = i.ClientID
WHERE DateDiff(dd, i.date, dateadd(dd,@day-datepart(dd,getdate()),getdate())) = 0