2010-08-22 42 views
0

大家好,我想从搜索发票和客户机通过今天的日期我使用的则DateDiff(数据)GETDATE()函数,例如两个表当前的月份和当前年份日期时间的SQL Server的具体天2005

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年我想要写一个月的任何一天 感谢每一个帮助我

回答

1

最简单的方法来选择记录从某一天被宣布分配给指定的日,月和年中的日期时间变量,并在你的档案中替换getdate() ERY与变量 - 像这样:

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 
+0

i kn OW,但当前月份和当前年份固定如果我运行后查询月份必须是更改日期它不是我想 当我运行查询查询时间从现在的日期时间获取月份和年份 所以我想写日只在查询中感谢你 – 2010-08-23 16:57:07

+0

@Ramy:尝试新的查询。 – 2010-08-23 17:30:35

+0

谢谢你是真的 如果你有任何有关datetime,DateDiff(),Dateadd(),getdate()函数的文章,但不发送MSDN我读它,我需要更多的例子。 谢谢你的帮助 – 2010-08-23 17:50:23

3

这里是一种方式,其也将能够在当前的月和年使用索引

where i.date >= DATEADD(Day, DATEDIFF(Day, 0, GETDATE()), 0) 
and i.date < DATEADD(Day, DATEDIFF(Day, 0, GETDATE()), 1) 
+0

+1:曲子我的答案,你*可以在公交车*中的差距;) – 2010-08-22 22:12:07

+0

我想选择查询当前月份和当前的特定日期从日期时间 如果当前月份是08和当前年份2010 我想要写月份的任何一天 – 2010-08-22 22:17:49

+0

更改getdate()to anydate,应该工作得很好,所以如果你想明天你会'20100823' – SQLMenace 2010-08-22 22:33:44

相关问题