2014-03-13 45 views
-1
date ,       rate 
1/2/2014 12:15:00.0000 PM,  abc 
8/2/2014 12:15:00.0000 PM,  efg 
etc... 

假設我有數據每週更新一次,例如:1/2/2014是更新日期,第二週將是8/2/2014等... 條件:我想要在sql中編寫代碼,如果客戶選擇2014年4月2日的日期,並且它將選擇在1/2/2014中顯示數據。我如何爲之前的日期編寫代碼?

我試圖查詢或多或少是這樣的:

SELECT rate,date FROM mytable WHERE year(date)=2014 AND month(date)=2 AND day(date)=4 

,但它給我空的數據因爲是在2014年4月2日沒有數據,我想查詢可以顯示從數據這是2014年1月2日

+0

http://stackoverflow.com/questions/6119369/simple-datetime-sql-query – martynas

回答

0
select t.* from table t where 
t.date between dateadd(dd,-7,t.date) and dateadd(dd,7,t.date) 

將轉化

select t.* from table where 
4/2/2014 between 3/26/2014 and 4/9/2014 

以前的日期運作的?

0

您不指定您正在使用的數據庫或數據類型。讓我假設數據類型的確是日期。以下查詢給出了這樣的想法:

SELECT rate, date 
FROM mytable 
WHERE date <= '2014-02-04' 
ORDER BY date desc 
LIMIT 1; 

以上給出了指導。日期常量的語法可能因數據庫而異。並且limit 1並不是所有數據庫都支持的,所以這可能是top 1where rownum = 1fetch first 1 rows或者甚至可能是別的。

+0

感謝您的回覆,我想申報日期,但數據中包含時間部分,解決方案是什麼? – user3413288

+0

@ user3413288。 。 。首先,我不確定這是否會對您的應用程序產生影響。其次,日期操作是相當數據庫特定的,所以沒有通用的方法。 –

相關問題