SQL服务器转换VARCHAR到日期时间SQL服务器转换VARCHAR到日期时间(SQL Serve

2019-05-13 14:30发布

我有这样的日期格式:2011-09-28 18点01分00秒(以VARCHAR),我想将其转换为datetime改变这种格式28-09-2011 18时01分00秒。 我该怎么做?

Answer 1:

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]


Answer 2:

像这样

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


Answer 3:

该网站显示了几个格式选项。

例:

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


Answer 4:

你可以有各种不同的风格,以datetime conversion

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

这有值范围: -

CONVERT(data_type(length),expression,style)

对于样式值,
选择任何你需要一个像我需要106。



Answer 5:

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


Answer 6:

你可以这样来做,但它留下它作为一个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)


Answer 7:

正如人们所说的,日期时间没有格式/字符串表示格式。

你可以改变一些格式化字符串输出。

为了您的字符串转换为datetime:

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)

要转换到你想要的字符串:

-- 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)


Answer 8:

试试下面的

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


Answer 9:

该网站有一些很好的例子,任何的varchar转换为日期或日期时间



文章来源: SQL Server Convert Varchar to Datetime