SQL Server Converti Varchar in Datetime

Ho questo formato data: 2011-09-28 18:01:00 (in varchar), e voglio convertirlo in datetime cambiando in questo formato 28-09-2011 18:01:00. Come posso farlo?

 SELECT CONVERT(Datetime, '2011-09-28 18:01:00', 120) -- to convert it to Datetime SELECT CONVERT( VARCHAR(30), @date ,105) -- italian format [28-09-2011 18:01:00] + ' ' + SELECT CONVERT( VARCHAR(30), @date ,108 ) -- full date [with time/minutes/sec] 

Come questo

 DECLARE @date DATETIME SET @date = '2011-09-28 18:01:00' select convert(varchar, @date,105) + ' ' + convert(varchar, @date,108) 

questo sito web mostra diverse opzioni di formattazione.

Esempio:

 SELECT CONVERT(VARCHAR(10), GETDATE(), 105) 

Puoi avere tutti i diversi stili per la datetime conversion :

http://www.w3schools.com/sql/func_convert.asp

Questo ha una gamma di valori: –

 CONVERT(data_type(length),expression,style) 

Per i valori di stile,
Scegli qualcuno di cui hai bisogno come se ne avessi bisogno 106.

Con tutto ciò che esiste la mia risposta ha un link specifico al sito di aiuto in modo che anche un principiante possa fare riferimento. Ecco come più utile

 SELECT CONVERT(VARCHAR(10), GETDATE(), 105) + ' ' + CONVERT(VARCHAR(10), GETDATE(), 108) 

Potresti farlo in questo modo ma lo lascia come un varchar

 declare @s varchar(50) set @s = '2011-09-28 18:01:00' select convert(varchar, cast(@s as datetime), 105) + RIGHT(@s, 9) 

o

 select convert(varchar(20), @s, 105) 

Come è stato detto, datetime non ha un formato di rappresentazione formato / stringa.

È ansible modificare l’output della stringa con una formattazione.

Per convertire la stringa in un datetime:

 declare @date nvarchar(25) set @date = '2011-09-28 18:01:00' -- To datetime datatype SELECT CONVERT(datetime, @date) 

dà:

 ----------------------- 2011-09-28 18:01:00.000 (1 row(s) affected) 

Per convertirlo nella stringa che desideri:

 -- To VARCHAR of your desired format SELECT CONVERT(VARCHAR(10), CONVERT(datetime, @date), 105) +' '+ CONVERT(VARCHAR(8), CONVERT(datetime, @date), 108) 

dà:

 ------------------- 28-09-2011 18:01:00 (1 row(s) affected) 

Prova il seguito

 select Convert(Varchar(50),yourcolumn,103) as Converted_Date from yourtbl 

Questo web ha alcuni buoni esempi per convertire qualsiasi varchar a data o data / ora