在 SQL 服务器中将字符串字段转换为自定义日期时间格式

Converting String field to a custom datetime format in SQL Server

我有一个字段,它是一个包含日期和时间的字符串,我所做的是对该字段进行子字符串化,这样我只能获取日期,输出如下所示:

2015-03-05 01:00

但我需要将其转换为类似这样的日期格式:

05-Mar-2015 01:00

如何在 SQL 服务器中转换它?这是我当前的语法:

SELECT Convert(nvarchar(50),SUBSTRING(TT.FlightArrDate,1,10))+' '+Convert(nvarchar(5),SUBSTRING(TT.FlightArrDate,12,16))as actDateT from tabl1

我是否可以更改日期格式,同时保留连接成的时间?

您可以使用这样的代码:

DECLARE @str VARCHAR(20) = '2015-03-05 01:00'

SELECT CONVERT(VARCHAR(20),CAST(@str AS DATETIME),13)

但日期部分之间没有字符“-”。您的结果中是否必须使用符号“-”?

将日期时间字符串更改为真正的日期时间,然后从那里进行格式化应该可以满足您的需求。

declare @d varchar(32)
set @d = '2015-03-05 01:00'

SELECT Convert(nvarchar(50),SUBSTRING(@d,1,10))+' '+Convert(nvarchar(5),SUBSTRING(@d,12,16)) as actDateT 

select format(convert(datetime, @d, 120), 'dd-MMM-yyyy hh:mm')

查询

DECLARE @dt VARCHAR(20) = '2015-03-05 01:00'

SELECT REPLACE(CONVERT(VARCHAR(20),CAST(@dt AS DATETIME),106),' ','-')
+' '
+CONVERT(VARCHAR(20),CAST(@dt AS DATETIME),108) AS actDateT;