转换时间hh:mm:ss AM(PM)格式(sql)

时间:2017-04-03 08:13:41

标签: sql

如何将时间:'上午8:02:24'转换为'08:02:24 AM',以便特定列中的所有时间都是固定长度。

我尝试在转换函数中使用不同的样式值,但无法获得我想要的结果。

2 个答案:

答案 0 :(得分:1)

您可以使用CONVERT函数将所有时间值转换为24小时格式

SELECT CONVERT(VARCHAR, <your column name>, 108) AS HourMinuteSecond

您可以通过执行以下查询来检查结果

SELECT CONVERT(VARCHAR, CONVERT(DATETIME, '8:08:8 PM'), 108) AS HourMinuteSecond

如果您不想要24小时格式,可以使用

SELECT REPLACE(RIGHT('0' + LTRIM(RIGHT(CONVERT(VARCHAR, <your column name>, 131), 14)), 11), ':000', ' ') AS HourMinuteSecond

示例:

   SELECT REPLACE(RIGHT('0' + LTRIM(RIGHT(CONVERT(VARCHAR, CONVERT(DATETIME, '8:8:8 PM'), 131), 14)), 11), ':000', ' ') AS HourMinuteSecond

答案 1 :(得分:0)

以下示例代码将根据小时部分长度(1或2)添加0。

declare @hour char(2)
    declare @time varchar(20)='8:02:24 PM'
    select @hour=substring(@time,1,charindex(':',@time)-1)
    if len(@hour)=1
    begin
       set @hour='0'+@hour
       set @time=@hour+substring(@time,charindex(':',@time),10)
    end   
    select @time