2012-03-05 14 views
0

可能性の重複取得:
Get a list of dates between two dates特定の月の毎日の値(または数ヶ月間)

をこれは私のsqlです:

select * from table as t 
where DateAndTime BETWEEN '2011-03-01' AND '2012-01-25' 

質問: *たとえば、私は2012年1月から毎日(週末を除く)のデータを取得する必要があります。

どうすればいいですか?

+0

このクエリを試しています週末は無視していますか? – vulkanino

+0

私はこれが重複しているとは思わない。 – vulkanino

答えて

0
SELECT 
    * 
FROM 
    yourtable AS T 
WHERE 
    yourdatetimefield BETWEEN STR_TO_DATE('2012-01-01', '%Y-%m-%d') AND 
           STR_TO_DATE('2012-12-31', '%Y-%m-%d') 
AND 
    DAYOFWEEK(yourdatetimefield) <> 1 AND ' Sunday 
    DAYOFWEEK(yourdatetimefield) <> 7  ' Saturday 
GROUP BY 
    DAY(yourdatetimefield); 
0

これを試してください。

SELECT * 
from table as t 
where (DateAndTime BETWEEN '2011-03-01' AND '2012-01-25') AND 
     DateAndTime NOT IN ('2011-03-03', '2011-03-10') -- Put the excempted 
                 -- dates here 
+0

BETWEENは文字列で動作しますか? – vulkanino

+0

あなたは 'DATE'機能を使うことができます。例として、 'DATE( '2011-03-03')' –

0
select * from table as t 
where DateAndTime BETWEEN '2011-03-01' AND '2012-01-25' 
AND (DATEPART(weekday, DateAndTime) <> 1 and DATEPART(weekday,DateAndTime) <> 6) 

(DATEPART(weekday, DateAndTime) = 1日曜日 (DATEPART(weekday, DateAndTime) = 6ある土曜日

0

あなたがのDateAndTimeフィールドの日の部分BY` `GROUPしたい、である

SELECT * FROM tableName 
WHERE DateAndTime BETWEEN '2011-03-01' AND '2012-01-25' 
AND WEEKDAY(DateAndTime) <= 4 
関連する問題