从nvarchar转换日期

时间:2015-12-10 09:49:27

标签: sql sql-server tsql

我有一个专栏,其日期为“2015年11月2日星期一”。列数据类型为nvarchar(255)。我想将此日期格式转换为“dd-mm-yyyy”。

请帮忙。

5 个答案:

答案 0 :(得分:2)

看看这里,105可能是您要找的转换代码

https://msdn.microsoft.com/en-us/library/ms187928.aspx

CONVERT(VARCHAR(10),ISNULL(@yourDate, ''), 105)

答案 1 :(得分:1)

Convert方法将日期转换为指定的样式。这里105表示样式mm / dd / yyyy

CONVERT(VARCHAR(10),GETDATE(),105) 通过改变样式日期可以转换为各种样式。

答案 2 :(得分:1)

首先需要删除de day-name,然后才能转换为datetime。如果需要,您可以转换回varchar。始终将日期时间值保留为datetime数据类型!

SELECT CONVERT(DATETIME, SUBSTRING('Mon, 02 Nov 2015', 5, 12), 105)

修改

上述查询返回datetime,与@JapzDivino建议的相反,它没有格式。 要获得指定的格式,请使用:

SELECT CONVERT(VARCHAR, CONVERT(DATETIME, SUBSTRING('Mon, 02 Nov 2015', 5, 12), 105), 105)

结果:02-11-2015

答案 3 :(得分:1)

试试这种方式

Declare @t as nvarchar(255)
set @t='Mon, 02 Nov 2015'
select CONVERT(date,ISNULL(substring(@t,5,LEN(@t)), ''),105)

答案 4 :(得分:0)

您可以使用CONVERT()CHAR() / VARCHAR()

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

result: 10-12-2015

http://www.sql-server-helper.com/tips/date-formats.aspx

https://www.mssqltips.com/sqlservertip/1145/date-and-time-conversions-using-sql-server/