嗨,我正在使用SQL 2014,我需要转换以下2种日期格式:
12/31/18 - Varchar
12/31/2018 - Varchar
此格式为最终格式
December 31,2018 Varchar
我知道使用varchar是不正确的。 有什么建议吗?
答案 0 :(得分:6)
尝试使用:
DECLARE @f varchar(50) = '12/31/18'
SELECT FORMAT(CAST(@f AS DATETIME), N'MMMM dd, yyyy')
输出:
December 31, 2018
还有第二个变体:
DECLARE @f varchar(50) = '12/31/2018'
SELECT FORMAT(CAST(@f AS DATETIME), N'MMMM dd, yyyy')
输出:
December 31, 2018
答案 1 :(得分:2)
您也可以使用
尝试以下查询create table DateValue (DateVal varchar(10))
insert into DateValue values
('12/31/18'),
('12/31/2018'),
('01/31/18'),
('01/31/2018')
Select
DateName( month , DateAdd( month , DATEPART(MONTH, DateVal) , 0 ) - 1 ) + ' ' +
Cast(DATEPART(dd, DateVal) as Varchar) + ', ' +
+ Cast (DATEPART(YYYY, DateVal) as Varchar) as VarcharDate
from DateValue
输出将如下所示。
VarcharDate
----------------
December 31, 2018
December 31, 2018
January 31, 2018
January 31, 2018
此查询还将在较低版本的SQL Server中运行,其中format()
不可用。