我有一个名为origdttime
的列,它是一个文本字段。我想将其转换为12小时的时间字段。该字段的值为hh:mi:ss.mmm
,即06:46:00.000
我希望此时显示为06:46 AM
我正在使用语句CONVERT(varchar(15), origdttime ,8) AS [time]
但它返回完全相同的格式和值。
需要调整什么才能返回我想要的输出?
答案 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