将 Int 转换为日期字段

don*_*iti 1 sql t-sql sql-server

我正在尝试将整数字段转换为实际日期字段。有人创建了一个“日期”字段,它只粘贴一个实际上是整数的“日期”。我正在尝试将其转换为实际日期。

我已尝试以下方法但无济于事:

CAST(CAST(last_purch_date AS CHAR) AS DATE) as Create,
CAST( last_purch_date as datetime) as Created,
convert(datetime,last_purch_date) as Created1,
ISDATE(CONVERT(CHAR(8),last_purch_date)) as PleaseDearGodWORK
Run Code Online (Sandbox Code Playgroud)

Joh*_*tti 5

简单地转换为日期就可以了

Select cast(cast(20161011 as varchar(8)) as date)
Run Code Online (Sandbox Code Playgroud)

退货

2016-10-11
Run Code Online (Sandbox Code Playgroud)

如果您的数据可疑,您还可以使用 Try_Convert()

Select Try_Convert(date,cast(2610 as varchar(8)))
Run Code Online (Sandbox Code Playgroud)

退货

NULL
Run Code Online (Sandbox Code Playgroud)

  • 请记住,Try_Convert 将在转换失败时返回 NULL 值,因此您应该检查哪些转换失败,以确保没有丢失/无效数据。 (2认同)