在 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
我是否可以更改日期格式,同时保留连接成的时间?
- 我正在使用 SQL Server 2008
您可以使用这样的代码:
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;
我有一个字段,它是一个包含日期和时间的字符串,我所做的是对该字段进行子字符串化,这样我只能获取日期,输出如下所示:
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
我是否可以更改日期格式,同时保留连接成的时间?
- 我正在使用 SQL Server 2008
您可以使用这样的代码:
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;