2012-03-05 80 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

就是要'GROUP BY'的DateAndTime場的日部分,無視週末? – vulkanino 2012-03-05 08:43:52

+0

我不認爲這是重複的。 – vulkanino 2012-03-05 08:49:53

回答

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 2012-03-05 08:49:04

+0

你可以使用'DATE'功能。例如,「DATE('2011-03-03')' – 2012-03-05 08:50:55

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

嘗試此查詢

SELECT * FROM tableName 
WHERE DateAndTime BETWEEN '2011-03-01' AND '2012-01-25' 
AND WEEKDAY(DateAndTime) <= 4 
相關問題