SQL -

2013-08-28 72 views
1

我運行此查詢之前獲取昨天和日數據:SQL -

select member, customerinfo.customerid -- ...other irrelevant columns... 
from customerinfo, addressinfo 
    where customerinfo.customerid = addressinfo.customerid 
    and MEMBER = (Date(GetDate()-1)) 
    and addressinfo.addresstype = 's' 

我很明顯是給我的數據,如果會員=昨天。

我的問題是,如果Member =最近2天(昨天和前一天),我該如何構建查詢以給我數據?

+1

警告!檢測到舊式JOIN。請使用INNER JOIN語法。 –

+0

'MEMBER'是一個日期時間列嗎?另外,這個查詢如何給你任何東西?我得到'消息195,級別15,狀態10,行16 /'DATE'不是一個公認的內置函數名稱。' –

+1

最後:請始終標記您正在使用的RDBMS,所以您不要浪費人們的時間。 'sql'太籠統了 - 我們用20多種不同的方言編寫SQL。 –

回答

6
MEMBER BETWEEN (GETDATE() -2) AND (GETDATE() -1) 

在SQL Server中,你也可以嘗試:

MEMBER BETWEEN DATEADD(day, -2, GETDATE()) AND DATEADD(day, -1, GETDATE()) 
+1

這似乎工作:會員BETWEEN(日期(GetDate() - 2))和(日期(GetDate() - 1)) – JeffreyLazo

+1

什麼版本的SQL Server是你所有人使用'DATE()在功能?我非常困惑。 –

+0

@AaronBertrand,在開始時這個問題沒有用SQL SERVER標記。之後在編輯後添加它,我不認爲它是正確的。 – Habib

1

更改您的查詢中:

SELECT member, customerinfo.customerid, ContactName, Address1, 
Address2, City, State, ZIP, Country from customerinfo, addressinfo 
WHERE customerinfo.customerid = addressinfo.customerid 
and MEMBER >= (Date(GetDate()-2)) AND MEMBER <= (Date(GetDate()-1)) 
and addressinfo.addresstype = 's'