无法将列varchar转换为int

时间:2017-01-07 02:15:21

标签: sql-server int varchar

我的varchar数据类型列的值为5/3/2012。我想将2016-05-03转换为int。当我尝试这样做时,它返回null作为输出

cast(convert(varchar(10), '5/3/2012', 112) as int) 

3 个答案:

答案 0 :(得分:1)

2016-05-03Date而非Integer值。因此,您需要将其转换为Date

您只想将Convert Date改为101,风格为Select convert(Date, '5/3/2012', 101) --2012-05-03

https

答案 1 :(得分:0)

但如果你真的需要将它转换成INT,试试这个 -

DECLARE @d DATE = '5/3/2012'
DECLARE @y int = YEAR( @d )
    , @m int = MONTH( @d )
    , @dy int = DAY( @d )

SELECT CAST(concat( @y, format(@m, '00'), format(@dy,'00')) as int)

答案 2 :(得分:0)

  SELECT CONVERT(INT,convert(Datetime, '5/3/2012', 101))
--41030