SQL Server将Varchar转换为date时间

我有这样的date格式:2011-09-28 18:01:00(在varchar),我想将其转换为datetime更改为此格式28-09-2011 18:01:00。 我该怎么做?

 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] 

喜欢这个

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

本网站显示了几种格式选项。

例:

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

您可以将所有不同的样式datetime conversiondatetime conversion

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

这有价值的范围: –

 CONVERT(data_type(length),expression,style) 

对于样式值,
根据需要select你需要的人106。

所有现有的我的答案有一个特定的链接到帮助网站,以便即使是一个初学者可以参考。 这是多么有用

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

你可以这样做,但它把它作为一个varchar

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

要么

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

如前所述,datetime没有格式/string表示格式。

您可以使用某些格式更改string输出。

将您的string转换为date时间:

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

得到:

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

要将其转换为你想要的string:

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

得到:

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

这个网站有一些很好的例子来将任何varchar转换为date或date时间

试试下面

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