ПОЛУЧЕНИЕ ТЕКУЩЕЙ ДАТЫ, то будет выводить 2 отсечки в месяц - PullRequest
0 голосов
/ 13 июня 2019

Я хочу получить текущую дату в SQL, тогда она автоматически выведет отсечение для этой даты.

select cast(getdate() AS DATE)

Пример: дата сегодня - 13.06.2009, тогда в этом месяце должно быть выведено второе отсечение

6/11/2019 - 6/25/2019

Если я выберу 6/10/2019, то результат должен быть

5/26/2019 - 6/10/2019

Ответы [ 2 ]

0 голосов
/ 13 июня 2019

Я думаю, вы должны использовать что-то вроде

Declare datetime @CurrentDate = GetDate(); -- 13Jun19 04:13:23
Declare datetime @D25OfMonth = GetDate() - DatePart(day, GetDate()) + 25; --25Jun19 04:13:23
Declare datetime @D10OfMonth = GetDate() - DatePart(day, GetDate()) + 11; --11Jun19 04:13:23 

, но здесь есть одна загвоздка.где в течение дня вы хотите, чтобы отключение было (полночь, текущий час, полдень)?Вы в основном манипулируете датой и временем, добавляя целое число, таким образом перемещаясь на один день вперед (+) или назад (-).

0 голосов
/ 13 июня 2019

Попробуйте это,

 Declare @Get_Date date=getdate()

Select iif
        (
            Datepart(day,@Get_Date)<11 or Datepart(day,@Get_Date) between 26 and 31
            ,Format(Dateadd(day,-5,EOMONTH(@Get_Date,iif(Datepart(day,@Get_Date) between 26 and 31,0,-1))),'dd/MM/yyyy')
            ,Format(Dateadd(day,11,EOMONTH(@Get_Date,-1)),'dd/MM/yyyy')
        ) as Cutoff_Start_Date,
        iif
        (
            Datepart(day,@Get_Date)<11 or Datepart(day,@Get_Date) between 26 and 31
            ,Format(Dateadd(day,10,EOMONTH(@Get_Date,iif(Datepart(day,@Get_Date) between 26 and 31,0,-1))),'dd/MM/yyyy')
            ,Format(Dateadd(day,25,EOMONTH(@Get_Date,-1)),'dd/MM/yyyy')
        ) as Cutoff_End_Date
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...