我有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转换为数字时出错。
有人可以帮帮我吗?
答案 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)