如何将SQL Server 24小时时间字符串转换为12小时日期时间数据类型

时间:2016-11-11 22:50:33

标签: sql-server tsql datetime

我有一个名为origdttime的列,它是一个文本字段。我想将其转换为12小时的时间字段。该字段的值为hh:mi:ss.mmm,即06:46:00.000我希望此时显示为06:46 AM

我正在使用语句CONVERT(varchar(15), origdttime ,8) AS [time]但它返回完全相同的格式和值。

需要调整什么才能返回我想要的输出?

2 个答案:

答案 0 :(得分:6)

尝试....

SELECT CONVERT(VARCHAR(15),CAST('06:46:00.000' AS TIME),100)

结果:

6:46AM
SELECT CONVERT(VARCHAR(15),CAST('17:46:00.000' AS TIME),100)

结果:

5:46PM

答案 1 :(得分:1)

如果使用FORMAT(),如果您使用的是SQL-Server 2012 +,则性能并不总是很好,但对于较小的数据集等,它是方便的选项。

DECLARE @Table AS TABLE (TimeAsString VARCHAR(50))
INSERT INTO @Table VALUES ('06:46:00.000'),('17:46:00.000')

SELECT
   TimeAsString
   ,FORMAT(CAST(TimeAsString as DATETIME), 'hh:mm tt')
FROM
    @Table