2017-01-07 6 views
0

J'ai une colonne de type de données varchar avec des valeurs comme 5/3/2012. Je veux convertir en int comme 2016-05-03. Quand je suis en train de le faire, il retourne nulle en sortieImpossible de convertir la colonne varchar en int

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

'2016-05-03' est une valeur 'Date' et non une' Integer' –

Répondre

1

2016-05-03 est un Date pas une valeur Integer. Donc, vous devez le convertir en Date

Vous voulez juste Convert à Date avec un style 101

Select convert(Date, '5/3/2012', 101) --2012-05-03 
+0

Prdp I Nécessité de charger dans une colonne int plutôt que da te – user2667326

+0

@ user2667326 - 'Int' ne peut pas stocker' -' –

0

Mais si vous ne vraiment besoin de le convertir en un INT, essayez ceci -

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) 
+0

Avez-vous vu ce 'Je veux convertir en int en 2016-05-03' même je suis surpris –

+0

@everyone merci beaucoup – user2667326

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

Ajouter plus de détails à la réponse – GurV