SQL Server сравнивает даты - PullRequest
0 голосов
/ 20 июня 2019

У меня есть таблица с деталями расчета, и мне нужен отчет в SSRS, который возвращает позиции расчета с датой расчета вчера или старше. Я знаю, что это тривиально, но есть кое-что, что я делаю неправильно, и был бы признателен за помощь

Это для Microsoft SQL Server и базовой таблицы для упрощения

Select
    SETL.SettlementDay as SD,
    SETL.Amount as Amount,
    SETL.quantity as Q
From
    Setlement as SETL
Where
    SETL.SettlementDate < getdate()

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

Спасибо

Ответы [ 2 ]

1 голос
/ 20 июня 2019

Если вы хотите вчера или старше, используйте:

where SETL.SettlementDate < convert(date, getdate())

Преобразование в date избавляет от метки времени на getdate() (несмотря на имя, оно имеет время и дату).

Это может показаться менее запутанным, если вы используете current_timestamp (который является частью стандарта SQL):

where SETL.SettlementDate < convert(date, current_timestamp)
0 голосов
/ 20 июня 2019

не могли бы вы попробовать, используя приведение

Select
    SETL.SettlementDay as SD,
    SETL.Amount as Amount,
    SETL.quantity as Q
From
    Setlement as SETL
Where
    cast( SETL.SettlementDate as date) < cast( getdate() as date)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...