Kai*_*shu 1 sql-server sql-server-2012 date
我已经从日期中取平均日期并试图获得平均日期的结果,但它引发了如下错误: Conversion failed when converting date and/or time from character string.
sql查询执行为:
select
CONVERT
(
DATE,
LEFT(
convert(
varchar(10),
AVG(
convert(
int,
convert(
varchar(10),
OnMarkDate,
112
)
)
)
),8
)
)
from @tbl_XMLResult
Run Code Online (Sandbox Code Playgroud)
列值如下:
'2001-10-11',
'2001-10-03',
'2001-09-24',
'2000-05-31',
'2001-10-15',
'2008-01-01'
Run Code Online (Sandbox Code Playgroud)
数据类型为日期。
这个查询:
将平均值加回到 2000/01/01
SELECT
DATEADD(DAY
, AVG(
DATEDIFF(day, '2000/01/01', OnMarkDate)
)
, '2000/01/01'
)
FROM @tbl_XMLResult;
Run Code Online (Sandbox Code Playgroud)输出:
2002-07-30 00:00:00.000
Run Code Online (Sandbox Code Playgroud)
DATEADD 的返回类型是使用字符串时的日期时间。您可以:
您的数据:
DECLARE @tbl_XMLResult TABLE(OnMarkDate date);
INSERT INTO @tbl_XMLResult(OnMarkDate) VALUES
('2001-10-11')
, ('2001-10-03')
, ('2001-09-24')
, ('2000-05-31')
, ('2001-10-15')
, ('2008-01-01');
Run Code Online (Sandbox Code Playgroud)