Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2005 SQL Server 2005中DateTime数据集的平均时间_Sql Server 2005_Datetime_Average - Fatal编程技术网

Sql server 2005 SQL Server 2005中DateTime数据集的平均时间

Sql server 2005 SQL Server 2005中DateTime数据集的平均时间,sql-server-2005,datetime,average,Sql Server 2005,Datetime,Average,我试图获得司机在每个独特客户处完成交货的平均时间。我正在使用以下列: Name (varchar(50)) Reference1 (varchar(50)) CompletedTime (Datetime). 我得到一个平均值,但它包括日期和时间,而不仅仅是日期。这使得时间平均值不正确 谢谢你的帮助 下面的当前代码: select name, Reference1, CAST(AVG(CAST(CompletedTime AS float)) AS datetime) From tblOrde

我试图获得司机在每个独特客户处完成交货的平均时间。我正在使用以下列:

Name (varchar(50))
Reference1 (varchar(50))
CompletedTime (Datetime).
我得到一个平均值,但它包括日期和时间,而不仅仅是日期。这使得时间平均值不正确

谢谢你的帮助

下面的当前代码:

select name, Reference1, CAST(AVG(CAST(CompletedTime AS float)) AS datetime)
From tblOrderRouteStops
where Name not like 'Cta%' and Reference1 <> '000000' and Name <> '' and CompletedTime is not Null
Group By name, Reference1
CASCADE HEMOPHILIA CONSORTIUM   000117  2010-10-01 09:24:01.000
CASCADE HEMOPHILIA CONSORTIUM   000117  2010-09-29 09:30:23.000
CASCADE HEMOPHILIA CONSORTIUM   000117  2010-09-27 09:44:17.000
CASCADE HEMOPHILIA CONSORTIUM   000117  2010-09-24 09:36:49.000
CASCADE HEMOPHILIA CONSORTIUM   000117  2010-09-23 09:48:20.000
CASCADE HEMOPHILIA CONSORTIUM   000117  2010-09-22 09:21:20.000
BOTSFORD OUT-PATIENT PHARMACY   006106  2010-09-23 08:01:06.000
BOTSFORD OUT-PATIENT PHARMACY   006106  2010-09-22 08:02:42.000
BOTSFORD OUT-PATIENT PHARMACY   006106  2010-09-24 08:21:36.000
BOTSFORD OUT-PATIENT PHARMACY   006106  2010-09-27 08:24:49.000
BOTSFORD OUT-PATIENT PHARMACY   006106  2010-09-28 08:25:58.000
BOTSFORD GENERAL HOSPITAL PREM  006205  2010-10-04 07:33:13.000
BOTSFORD GENERAL HOSPITAL PREM  006205  2010-10-01 07:35:13.000
BOTSFORD GENERAL HOSPITAL PREM  006205  2010-09-30 07:31:15.000
BOTSFORD GENERAL HOSPITAL PREM  006205  2010-09-29 07:41:56.000
BOTSFORD GENERAL HOSPITAL PREM  006205  2010-09-28 08:03:38.000
Name, Reference1, Time
所需输出:

select name, Reference1, CAST(AVG(CAST(CompletedTime AS float)) AS datetime)
From tblOrderRouteStops
where Name not like 'Cta%' and Reference1 <> '000000' and Name <> '' and CompletedTime is not Null
Group By name, Reference1
CASCADE HEMOPHILIA CONSORTIUM   000117  2010-10-01 09:24:01.000
CASCADE HEMOPHILIA CONSORTIUM   000117  2010-09-29 09:30:23.000
CASCADE HEMOPHILIA CONSORTIUM   000117  2010-09-27 09:44:17.000
CASCADE HEMOPHILIA CONSORTIUM   000117  2010-09-24 09:36:49.000
CASCADE HEMOPHILIA CONSORTIUM   000117  2010-09-23 09:48:20.000
CASCADE HEMOPHILIA CONSORTIUM   000117  2010-09-22 09:21:20.000
BOTSFORD OUT-PATIENT PHARMACY   006106  2010-09-23 08:01:06.000
BOTSFORD OUT-PATIENT PHARMACY   006106  2010-09-22 08:02:42.000
BOTSFORD OUT-PATIENT PHARMACY   006106  2010-09-24 08:21:36.000
BOTSFORD OUT-PATIENT PHARMACY   006106  2010-09-27 08:24:49.000
BOTSFORD OUT-PATIENT PHARMACY   006106  2010-09-28 08:25:58.000
BOTSFORD GENERAL HOSPITAL PREM  006205  2010-10-04 07:33:13.000
BOTSFORD GENERAL HOSPITAL PREM  006205  2010-10-01 07:35:13.000
BOTSFORD GENERAL HOSPITAL PREM  006205  2010-09-30 07:31:15.000
BOTSFORD GENERAL HOSPITAL PREM  006205  2010-09-29 07:41:56.000
BOTSFORD GENERAL HOSPITAL PREM  006205  2010-09-28 08:03:38.000
Name, Reference1, Time

您的浮点方法是一个很好的开始:您需要删除整数,这会给您一个表示一天中某个时间的分数。平均值,更改回datetime。若要使用此选项,请忽略“1900年1月1日”,并将时间位作为您的平均值

select name, Reference1,
          CAST(AVG(CAST(CompletedTime AS float) - CAST(CompletedTime AS int)) AS datetime)
From tblOrderRouteStops
where Name not like 'Cta%' and Reference1 <> '000000' and Name <> '' and CompletedTime is not Null
Group By name, Reference1
选择名称,参考1,
强制转换(平均(强制转换(CompletedTime为浮点)-强制转换(CompletedTime为int))为日期时间)
从tblOrderRouteStops
其中名称与“Cta%”和引用1“000000”不同,名称与“CompletedTime”不为空
按名称分组,引用1

您的浮点方法是一个良好的开端:您需要删除整数,该整数表示一天中的某个时间。平均值,更改回datetime。若要使用此选项,请忽略“1900年1月1日”,并将时间位作为您的平均值

select name, Reference1,
          CAST(AVG(CAST(CompletedTime AS float) - CAST(CompletedTime AS int)) AS datetime)
From tblOrderRouteStops
where Name not like 'Cta%' and Reference1 <> '000000' and Name <> '' and CompletedTime is not Null
Group By name, Reference1
选择名称,参考1,
强制转换(平均(强制转换(CompletedTime为浮点)-强制转换(CompletedTime为int))为日期时间)
从tblOrderRouteStops
其中名称与“Cta%”和引用1“000000”不同,名称与“CompletedTime”不为空
按名称分组,引用1
这对你有用

您可以使用convert(varchar,Value,108)去掉日期

选择名称,参考1,
转换(varchar,CAST(AVG(CAST(CompletedTime作为float)-CAST(CompletedTime作为int))作为datetime),108)平均时间
从tblOrderRouteStops
其中名称与“Cta%”和引用1“000000”不同,名称与“CompletedTime”不为空
按名称分组,引用1
这对你有用

您可以使用convert(varchar,Value,108)去掉日期

选择名称,参考1,
转换(varchar,CAST(AVG(CAST(CompletedTime作为float)-CAST(CompletedTime作为int))作为datetime),108)平均时间
从tblOrderRouteStops
其中名称与“Cta%”和引用1“000000”不同,名称与“CompletedTime”不为空
按名称分组,引用1

你能发布,比如说,10行样本数据吗?你需要什么输出?都要求添加到我的帖子中。你能发布,比如说,10行样本数据吗?你需要什么输出?都要求添加到我的帖子中。我的平均值是“1900-01-01 08:05:41.000”。有没有办法删除日期?@user466118:对不起,没有。这是“日期时间”值,因此您将始终有一个日期组件B谢谢。。。我接受了您开始的内容,并添加了一个转换以仅获取时间部分。选择name,Convert(nvarchar,CAST(AVG(CAST(CompletedTime作为float)-CAST(CompletedTime作为int))作为datetime),108)你可以使用Convert(varchar,datetime值,108)我得到的是“1900-01-01 08:05:41.000”作为AVG。有没有办法删除日期?@user466118:对不起,没有。这是一个“datetime”值,所以你总是有一个日期组件GBH谢谢。。。我接受了您开始的内容,并添加了一个转换以仅获取时间部分。选择name,Convert(nvarchar,CAST(AVG(CAST(CompletedTime作为float)-CAST(CompletedTime作为int))作为datetime),108)您可以使用Convert(varchar,datetimeValue,108)