Datepart() 函数未转换为 bigint

问题描述

我正在尝试一个简单的选择操作

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