gpt4 book ai didi

sql-server - 将表达式转换为数据类型日期时间时出现算术溢出错误。 (同时显示日期时间..)

转载 作者:行者123 更新时间:2023-12-02 10:45:07 25 4
gpt4 key购买 nike

执行时显示以下错误

declare @yr_mnth_dt as numeric;
set @yr_mnth_dt = 20130822;
select convert(datetime,@yr_mnth_dt,112) as YR_MNTH_DT

错误显示

Arithmetic overflow error converting expression to data type datetime.

最佳答案

您的问题是您尝试将数字转换日期时间,但这不起作用。

您需要先将数字转换为字符串:

declare @yr_mnth_dt as numeric;
set @yr_mnth_dt = 20130822;

select yr_mnth_dt = cast(cast(@yr_mnth_dt as char(8)) as datetime);

SQL Fiddle with demo .

当您尝试将数值类型转换为日期时间时,SQL Server 会尝试将数值作为天数添加到日期01-Jan-1900 。在您的情况下,这试图增加数百万天,因此会出现溢出错误。

CONVERT 也可以正常工作,如果您愿意的话:

select yr_mnth_dt = convert(datetime, convert(char(8), @yr_mnth_dt));

SQL Fiddle with demo .

关于sql-server - 将表达式转换为数据类型日期时间时出现算术溢出错误。 (同时显示日期时间..),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18416623/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com