将Bigint转换为Datetime SQL Server

时间:2019-05-15 20:47:55

标签: sql-server datetime bigint

我有一个表,该表的字段为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

2 个答案:

答案 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)