2010-08-22 65 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

相關問題