Дни недоступны - PullRequest
       6

Дни недоступны

2 голосов
/ 18 декабря 2008

Мне нужен простой SQL для выполнения следующего:

Проблема:

Когда в бензобаке заканчивается топливо, администратор записывает DateTime (RunOutDate), когда у него закончилось топливо, и отмечает DateTime (ResupplyDate), когда подача топлива была снова включена.

Мне нужно создать отчет о том, сколько дней бензина закончилось.

например.

1/1/1 с 10:10 до 1/1/1 10:50 следует считать 1

1/1/1 с 10:10 до 2/1/1 07:20 следует считать как 2

1/1/1 с 23:55 до 2/1/1 00:10 следует считать как 2

Я не могу использовать банковские часы с использованием DateDiff, поскольку 24 часа могли бы охватить 2 дня.

ТИА

Ответы [ 2 ]

7 голосов
/ 18 декабря 2008
DATEDIFF(d, RunOutDate, ResupplyDate) + 1

Помните, что DATEDIFF всегда считает количество ГРАНИЦ, которые вы пересекаете. Для дней (первый аргумент d) он подсчитывает, сколько часов часы прошли в полночь. Таким образом, чтобы подсчитать количество пройденных дней, просто добавьте 1.

4 голосов
/ 18 декабря 2008

DATEDIFF, используя день, затем добавьте 1.

DATEDIFF использует полночь для подсчета дней, поэтому вы получите 0, 1, 1 для каждого примера выше. Затем добавьте 1.

DATEDIFF(day, '16 Dec 2008 10:10', '16 Dec 2008 10:50') + 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...