J'ai un problème de conversion date dans SQL Server 2008SQL Server - date de conversion
La valeur que je suis en train de convertir ressemble à ceci: 30-NOV-44 08.00.00.000000000
Le résultat je me regarde en arrière comme ceci: 2044-11-30 00:00:00.000
le code que je utilise est la suivante:
SELECT TOP 1000 [USER_ID]
,CONVERT(datetime,SUBSTRING([DATEOFBIRTH],0,11),112) AS ConvertedDate
,[DATEOFBIRTH]
FROM [IAM_Perf].[dbo].[01_Data]
WHERE DATEOFBIRTH IS NOT NULL
Quel que soit le paramètre que j'utilise la fonction CONVERT je reçois le même format de retour et beaucoup de dates sont en cours de conversion dans le futur ??!
Les résultats changent lorsque je bascule entre date et date-heure dans le premier argument de la CONVERT mais cela n'a aucun impact sur les résultats incorrects.
J'utilise la fonction de sous-chaîne, car sinon il ne convertit pas la valeur et génère cette erreur:
Msg 241, Level 16, State 1, Line 1 Conversion failed when converting date and/or time from character string.
Je ne suis pas sûr de savoir comment lutter contre cela, je ne peux pas guaruntee le format restera toujours le même Sinon, je voudrais juste le reformater manuellement en utilisant du T-SQL
Quelqu'un at-il des idées?
Merci,
Matt
En plus, vous devez sous-indiquer votre date car l'heure n'est pas dans un format valide avec toutes les périodes. Si vous regardez la documentation de la fonction CONVERT vous verrez que SQL ne convertira jamais une date ** en ** une fois avec seulement des points. En bref, SQL ne convertira une chaîne en datetime que s'ils sont formatés de la même manière que dans la documentation CONVERT. – Jim
Exactement ce que je cherchais, une réponse éducative. – Yoda