2010-08-23 69 views
0

大家好我想從發票和客戶端搜索數據到今天的日期我正在使用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 

當我運行查詢getdate()它是現在從日期時間獲取日期的函數 日期內容當前月份和當前年份和當日 當我運行查詢今天日期是08-23-2010,當我明天運行查詢日期是08-24-2010。

Q - 查詢做了一些相同的日期,我想從日期時間現在月份獲得月份,從現在的日期時間獲得年份 並僅寫入特定的一天。

+0

對不起 - 我很難理解你要求什麼。你能提供一個你期望輸出的例子嗎? – 2010-08-23 17:26:21

+0

非常令人困惑的問題,但我認爲您正在嘗試編寫一個查詢來篩選當前月份和年份的發票,並且您希望查詢僅輸出一天(因爲過濾器假定的月份和年份)。那是對的嗎? – 2010-08-23 17:32:26

回答

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

我不明白你的問題,但據我所知,你想有一個時間差,而不是0天。然後您將不得不使用其他日期部件(第一個參數爲DateDiff())請參閱MS documentation of DateDiff以獲取詳細信息或DateAdd函數。

此外,也許你想使用

i.date between DateAdd(dd, -10, getDate) and getDate() 

(這將顯示一切十天之間前和今天)。

相關問題