问题描述
我正在尝试一个简单的选择操作
select datepart(year,AttendanceTimeIn)*100000000 from TV_AttendanceTable
但出现以下错误:
将表达式转换为 int 数据类型时出现算术溢出错误。
我也尝试将其类型转换为 BigInt,但没有成功,出现相同的错误。
select CONVERT(BIGINT,datepart(year,AttendanceTimeIn)*100000000) from TV_AttendanceTable
注意:AttendanceTimeIn 列是我的 sql 表中的日期时间类型列。
解决方法
您在乘法之后转换。那太晚了。您需要在乘法之前转换值之一:
CONVERT(BIGINT,datepart(year,AttendanceTimeIn)) * 100000000
或者像我写的那样:
CONVERT(BIGINT,year(AttendanceTimeIn)) * 100000000