可能重複:
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月起每天(週末除外)獲取數據。
我該怎麼辦?
可能重複:
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月起每天(週末除外)獲取數據。
我該怎麼辦?
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);
試試這個。
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
確實BETWEEN與字符串工作? – vulkanino 2012-03-05 08:49:04
你可以使用'DATE'功能。例如,「DATE('2011-03-03')' – 2012-03-05 08:50:55
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
是星期六
嘗試此查詢
SELECT * FROM tableName
WHERE DateAndTime BETWEEN '2011-03-01' AND '2012-01-25'
AND WEEKDAY(DateAndTime) <= 4
就是要'GROUP BY'的DateAndTime場的日部分,無視週末? – vulkanino 2012-03-05 08:43:52
我不認爲這是重複的。 – vulkanino 2012-03-05 08:49:53