将sysdate()转换为int数据类型

时间:2016-10-18 17:54:06

标签: sql sql-server

我有sysdate() value - 2016.10.18。我需要 SQL 将其转换为 MS SQL SERVER 中的int

  

INPUT - 2016.10.18
  输出需求。 - 20161018

我试过了 -

SELECT CONVERT(int, '2016.10.18') 

但它会引发以下错误:

  

Msg 245,Level 16,State 1,Line 1
  将varchar值'2016.10.18'转换为数据类型int。

时转换失败

也尝试了这个 -

select  CONVERT(int,CONVERT(decimal(19,2),'2016.10.18'))

收到以下错误:

  

Msg 8114,Level 16,State 5,Line 1
  将数据类型varchar转换为数字时出错。

有人可以帮帮我吗?

2 个答案:

答案 0 :(得分:2)

更新了答案。

Select Cast(Convert(varchar(8), Cast(Left('2016.10.18 14:24:49',10) as Date), 112) as int)

答案 1 :(得分:2)

Select Convert(int,Convert(varchar,cast('2016.10.18' as date),112))

返回

20161018

以下任何一种都可以使用。如果您使用了replace()方法,则需要通过LEFT(...,10)去掉时间部分

Select Convert(int,Convert(varchar,cast('2016.10.18 14:24:49' as date),112))
Select cast(Replace(Left('2016.10.18 14:24:49',10),'.','') as int)