我有一个表,该表的字段为Report_Date。此字段是bigint类型。我有另一个表具有datetime类型的ReportDate。我想合并每个表中的数据,但我想将bigint转换为日期时间。
我尝试了SELECT DATEADD(DD, convert(bigint, Report_Date), Report_date)
,但收到错误消息:
将表达式转换为数据类型为datetime的算术溢出错误。
我还尝试了SELECT DATEADD(DD, convert(bigint, Report_Date), convert(datetime, Report_date))
并得到相同的错误消息结果。
我希望日期时间为2019-02-28 00:00:00.000
。
答案 0 :(得分:1)
以您的示例为例,您需要执行以下操作。
select convert(datetime, convert(char(8), 20190108))
我一生都无法弄清楚您要使用DATEADD逻辑做什么。
答案 1 :(得分:1)
要将bigint / int转换为日期时间,首先需要将其转换为varchar。您可以这样做,例如:
select cast(cast(Report_Date as varchar(80)) as datetime)