SQL Server 2005 DateTime математика - PullRequest
       0

SQL Server 2005 DateTime математика

1 голос
/ 15 сентября 2011

Я пытаюсь получить количество времени, потраченного на что-то. У меня есть DateTime для начала и конца вещи в двух столбцах. Я могу сделать:

 cnext.CreatedDate - c.CreatedDate

, что приводит к чему-то вроде этого:

 1900-01-01 00:00:19.190

, что означает, что они потратили 19,19 секунды на вещь. Это отлично подходит для каждой строки, но я бы хотел сгруппировать по конкретным вещам и подвести итог времени, потраченного на каждую вещь:

SUM(cnext.CreatedDate - c.CreatedDate)

но я получаю:

Operand data type datetime is invalid for sum operator.

Как мне узнать общее время, если я не могу суммировать типы DateTime?

Ответы [ 2 ]

3 голосов
/ 15 сентября 2011

Вы не можете СУММУ значения даты и времени. Это похоже на получение квадратного корня строки.

Попытка:

SUM(DATEDIFF(SECOND, c.CreatedDate, cnext.CreatedDate))

Или, если вы хотите большей точности:

SUM(DATEDIFF(MILLISECOND, c.CreatedDate, cnext.CreatedDate))
0 голосов
/ 15 сентября 2011

Если зелье даты 1/1/1900, конвертируйте даты в числа с плавающей точкой, вычитайте их и преобразовывайте результат обратно в datetime.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...