Как указать день и время в качестве точки останова в SQL? - PullRequest
1 голос
/ 28 декабря 2010

Мне нужно отобразить 12/29 - 01/04, 01/05 - 01/11 и т. Д. В выпадающем списке со среды по вторник в зависимости от того, какая дата сейчас. До понедельника, т.е. с 12/27 до 18:00, он должен отображаться с 12/29 - 01/04, после понедельника, т.е. после 18:00, в раскрывающемся списке должно быть 01 / 05-01 / 11. Надеюсь, вы, ребята, понимаете, чего я хочу. Я понятия не имею, как я могу установить день и время в качестве точки останова и получить недели из базы данных. База данных имеет начальную дату столбца как 29.12.2010 12:00:00 и конечную дату 01.04.2011 12:00:00,etcc

Где я могу указать, что я хочу, в C # или Sql. и получить недели соответственно? В sql как должна быть хранимая процедура .. Кто-то, пожалуйста, помогите мне ..

Спасибо заранее !!

1 Ответ

0 голосов
/ 28 декабря 2010

Это должно сработать - вам нужно использовать DATEFIRST , чтобы установить первый день недели на среду. Затем вы можете использовать небольшую манипуляцию, чтобы получить нужные вам даты.

Set DateFirst 3
Declare @CurrentDate datetime,
        @Start datetime,
        @End datetime

Select @CurrentDate = getdate()

Select  @Start = Case 
        When (DATEPART(DW, @CurrentDate) = 6 and DATEPART(hour, @currentDate) > 18)
                or (DATEPART(DW, @CurrentDate) > 6 ) Then 
            DateAdd(day, ((7 - DATEPART(dw, @CurrentDate)+1) + 7), @CurrentDate)
            Else DateAdd(day, ((7 - DATEPART(dw, @CurrentDate)+1)), @CurrentDate)
         End

Select @End = DATEADD(day, 6, @start)

Select @CurrentDate, @Start, @End
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...