2013-11-08 5 views
1

Как я могу получить текущую неделю в общем запросе, в настоящее время я могу получить диапазон дат, но я хотел бы получить текущую неделю динамически.Sql Server 2008, Выберите даты текущей недели в общем запросе?

Это то, что у меня есть:

WITH mycte AS 
(
    SELECT CAST('2011-01-01' AS DATETIME) DateValue 
    UNION ALL 
    SELECT DateValue + 1 
    FROM mycte 
    WHERE DateValue + 1 < '2021-12-31' 
) 
SELECT DateValue 
FROM mycte 
OPTION (MAXRECURSION 0) 

Основываясь на дату сегодняшнего я хочу, чтобы получить что-то вроде:

11-04-2013 11-05-2013 11-06-2013 11-07-2013 11-08-2013 11-09-2013 11-10-2013 
+0

Для MySQL или SQL Server? – tadman

+0

для любого из них. – Uuid

+1

Начинается ли «текущая» неделя в воскресенье? – automatic

ответ

1

Один из способов сделать это в SQL Server

WITH weekdays AS 
(
    SELECT 0 day 
    UNION ALL 
    SELECT day + 1 FROM weekdays WHERE day < 6 
) 
SELECT DATEADD(DAY, day, DATEADD(DAY, 2-DATEPART(WEEKDAY, CONVERT (date, GETDATE())), CONVERT (date, GETDATE()))) date 
    FROM weekdays 

Выход:

 
|  DATE | 
|------------| 
| 2013-11-04 | 
| 2013-11-05 | 
| 2013-11-06 | 
| 2013-11-07 | 
| 2013-11-08 | 
| 2013-11-09 | 
| 2013-11-10 | 

Вот SQLFiddle демо

В MySQL

SELECT CURDATE() + INTERVAL 1 - DAYOFWEEK(CURDATE()) DAY + INTERVAL day DAY date 
    FROM 
(
    SELECT 1 day UNION ALL 
    SELECT 2 UNION ALL 
    SELECT 3 UNION ALL 
    SELECT 4 UNION ALL 
    SELECT 5 UNION ALL 
    SELECT 6 UNION ALL 
    SELECT 7 
) w 

Вот SQLFiddle демо

+0

, это сработает! как будет ежемесячно? – Uuid

+0

@Uuid Ежемесячная версия будет выглядеть почти одинаково. Возможно, вы уже знаете (учитывая свою репутацию> 300), что изменение сферы вопроса не в том, как работает SO. Если вы ответили на свой вопрос, пожалуйста, учтите, что принимаете его. Если у вас есть другой вопрос, просто опубликуйте его и других членов SO, или я буду рад помочь вам в этом. – peterm

+0

Я обязательно отправлю еще один вопрос, но я уже сделал монтированную версию, спасибо peter. – Uuid

Смежные вопросы