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

时间:2015-03-10 07:53:39

标签: sql-server string datetime format

我有一个字段,它是一个包含日期和时间的字符串,我所做的是将字符串子字符串,因此我只能得到日期,输出看起来像这样:

2015-03-05 01:00

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

05-Mar-2015 01:00

如何在SQL Server中转换它?这是我目前的语法:

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

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

  • 我正在使用SQL Server 2008

3 个答案:

答案 0 :(得分:1)

您可以使用以下代码:

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

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

但没有角色" - "日期部分之间。是符号" - "你的结果有必要吗?

答案 1 :(得分:1)

将日期时间字符串更改为实际日期时间,然后从那里进行格式化可以为您提供所需的内容。

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

答案 2 :(得分:1)

<强>查询

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;