Установка даты начала и окончания - PullRequest
0 голосов
/ 12 апреля 2020

У меня есть простой запрос, который должен собрать всех сотрудников, которые были наняты за последние 10 дней, вплоть до вчерашнего конца дня в 11:59, исключая текущую дату, используя переменные даты начала и окончания.

Я знаю, что МНОГИЕ способы установки этого диапазона дат. Какое наиболее эффективное SQL выражение сервера может дать вам даты начала и окончания за последние 10 дней, исключая текущую дату?

    DECLARE @StartDate = ???
    DECLARE @EndDate = ???

    SELECT @StartDate, @EndDate

Желаемый результат:

    2020-04-02 00:00:00.000, 2020-04-11 23:59:59.000

Ответы [ 2 ]

3 голосов
/ 13 апреля 2020

: 59 схем плохая идея. Сравнения должны быть меньше, чем (начало) следующего дня, чтобы включить полный предыдущий день.

SELECT @StartDate = DATEADD(dd,-10,CAST(getdate() AS DATE)), @EndDate = CAST(getdate() AS DATE)

Однако, если вы все еще хотите это:

SELECT @StartDate = DATEADD(dd,-10,CAST(getdate() AS DATE)), @EndDate = DATEADD(ss,-1,CAST(CAST(getdate() AS DATE) AS DATETIME))
0 голосов
/ 13 апреля 2020

Надеюсь, что этот код отлично подойдет для вашего дела:

SELECT 

@Start=CAST(CAST(GETDATE()-10 AS DATE) AS DATETIME),
@End=CONCAT(CAST(GETDATE()-1 AS DATE),' 23:59:59.000') ---  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...