2011-07-22 5 views
2

J'ai une chaîne 010910 au format ddMMyy que je dois convertir cette chaîne en un type de données datetime SQL Server, comme 2010-09-01 00:00:00.000.Chaîne de conversion SQL Server vers datetime

Comment cela peut-il être fait?

+3

Google "sql server chaîne jeté datetime". Le premier succès est la réponse dont vous avez besoin. – Pondlife

+1

@Pondlife - Je ne pense pas qu'il existe une option pour le format avec lequel je travaille. –

+0

C'est correct, mais j'espère qu'il est évident que si vous connaissez les formats supportés, la seule chose à faire est de convertir votre propre format en format supporté. – Pondlife

Répondre

2
SELECT CAST(right(s, 2) + left(s,4) as datetime) 
FROM (SELECT '010910' s) a 
+0

Fonctionne très bien. Merci. –

1

Extrayez les bits à l'aide de SUBSTRING et regroupez-les en les concaténant.

5

Que diriez-vous quelque chose comme

DECLARE @String VARCHAR(6) 
SELECT @String = '010910' 

SELECT CONVERT(DATETIME,LEFT(@String,2) + '/' + SUBSTRING(@String, 3, 2) + '/' + RIGHT(@String,2),3) 

Jetez un oeil à SQL Server Date Formats et CAST and CONVERT (Transact-SQL)

+0

Votre travail fonctionne parfaitement, mais je pense que la réponse de t-clausen.dk est plus précise et plus courte. –

Questions connexes