2010-10-01 7 views
3

J'ai une table avec plus de 800 enregistrements. Dans ce tableau, j'ai une colonne nommée 'Data' du type de données varchar (10) qui contient des dates au format dd.MM.yyyy.Je veux le convertir en smalldatetime.Convertir la colonne varchar en smalldatetime

J'ai essayé de convertir à l'aide d'Enterprise Management Studio Express, mais je reçois cette erreur:

The conversion of char data type to smalldatetime data type resulted in an out-of-range smalldatetime value.

Comment puis-je convertir?

Répondre

2

Je pense que vous devrez faire une petite manipulation de chaîne pour que cela fonctionne, car je pense que SQL attend 'MM.dd.yyyy'. Donc, mettez à jour votre table pour faire flip-flop le mois et le jour d'abord, puis la conversion devrait passer.

update YourTable 
    set Data = SUBSTRING(Data,4,3) + LEFT(Data,3) + RIGHT(Data,4) 
+0

Merci Joe! Ça a marché! – milo2010

0

Vous pouvez utiliser:
SELECT ID, CAST(VarcharCol As SmallDateTime) as DateTimeCol From Test1
Ceci renvoie une table avec des valeurs varcharcol comme smalldatetime jour ensuite le contenu de varcharcol avec les nouvelles valeurs.

Questions connexes