Float as DateTime - PullRequest
       2

Float as DateTime

1 голос
/ 13 мая 2010

SQL Server 2008

Думаю, у меня почти есть то, что я хочу сделать. Я просто пытаюсь настроить результат. У меня есть таблица, в которой хранятся метки времени всех транзакций, которые происходят в системе. Я пишу запрос, чтобы дать среднее время транзакции. Это то, что я до сих пор:

With TransTime AS (
  select endtime-starttime AS Totaltime 
    from transactiontime
   where starttime > '2010-05-12' and endtime < '2010-05-13')
Select CAST(AVG(CAST(TotalTime As Float))As Datetime) 
  from TransTime

Я получаю следующий результат:

1900-01-01 00: 00: 00.007

Я не могу понять, как убрать дату и просто отобразить время, 00: 00: 00: 007. Любая помощь будет оценена. Спасибо.

Ответы [ 3 ]

4 голосов
/ 13 мая 2010

Вы хотите разыграть как ВРЕМЯ .

With TransTime AS (
  select endtime-starttime AS Totaltime 
    from transactiontime
   where starttime > '2010-05-12' and endtime < '2010-05-13')
Select CAST(AVG(CAST(TotalTime As Float))As TIME(7)) 
  from TransTime
1 голос
/ 13 мая 2010

Это первое вычитание - ваша проблема, и почему вы приводите результат к DATETIME (или даже к TIME)?

With TransTime AS 
(
    -- get time in milliseconds
    select DATEDIFF(ms, starttime, endtime) AS Totaltime 
        from transactiontime
        where starttime > '2010-05-12' and endtime < '2010-05-13'
)
Select AVG(CAST(TotalTime As Float)) AS average_time_in_msec
    FROM TransTime
0 голосов
/ 13 мая 2010

Вы, вероятно, хотите использовать функцию DATEPART для этого. Ознакомьтесь с документацией здесь .

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