如何将时间:'上午8:02:24'转换为'08:02:24 AM',以便特定列中的所有时间都是固定长度。
我尝试在转换函数中使用不同的样式值,但无法获得我想要的结果。
答案 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