Как я могу рассчитать количество минут в день между датами - PullRequest
0 голосов
/ 09 января 2019

Прежде всего, я прошу прощения, я даже не знаю, с чего начать и не смог найти ничего конкретного для этого конкретного вопроса.

У меня есть таблица с датами (начало и конец), и мне нужно найти способ получить минуты / часы между этими днями. Это может быть либо сумма времени в будние дни, либо какая-то опорная точка в каждый день и группировка по идентификационному номеру. Я подумал присвоить значение количеству дней, однако оно случайное и не начинается / заканчивается в полночь, поэтому я не знаю, как к этому приблизиться.

Вот несколько примеров формата даты / времени, если это поможет.

дата начала 2018-12-14 10: 53: 01
конец 2018-12-27 11: 50: 00

Любая помощь или подсказки будут с благодарностью!

Редактировать

забыл включить я работаю в SQL Server (SSMS)

Редактирование для дополнительного уточнения

Вот примерный диапазон дат с идентификационным номером, я хотел, чтобы он был простым.

| ID номер | время начала | время окончания

| 1 | 14.12.2008 10: 53 | 17.12.2008 12:00

вот что я пытаюсь достичь (разделение каждого диапазона дат / ID #)

идентификационный номер | время начала | время окончания | минуты |

1 | 14.12.2008 10: 53 | 14.12.2008 23: 59 | 786 |

1 | 15.12.2008 0:00 | 15.12.2008 23: 59 | 1439 |

1 | 16.12.2008 0:00 | 16.12.2008 23: 59 | 1439 |

1 | 17.12.2008 0:00 | 17.12.2008 12: 00 | 960 |

1 Ответ

0 голосов
/ 09 января 2019

Параметр MINUTE функции DATEDIFF можно использовать для определения разницы в минутах между двумя столбцами даты и времени. Как показано ниже, вторым параметром является дата начала, а третьим параметром является дата окончания, а результатом является количество времени в указанном интервале (дни, минуты и т. Д.) От начальной до конечной даты. Если вам нужно найти количество часов между этими двумя столбцами, для этого можно использовать параметр HOUR. Группировка может быть выполнена так же, как и во втором примере.

DATEDIFF:

SELECT DATEDIFF(MINUTE, StartDateColumn, EndDateColumn)

DATEDIFF с группировкой и агрегацией:

SELECT ColumnA, SUM(DATEDIFF(MINUTE, StartDateColumn, EndDateColumn)) as DifferenceInMinutes
FROM YourSchema.YourTable
GROUP BY ColumnA
...