3

下面的代码正在做我想做的事,将时间转换为适合我需要的格式。但是,当分钟和秒为个位数时,格式看起来不太好。我想调整代码以填充需要的分钟和秒。有什么建议么?同样,我想尽可能地保留现有代码。
谢谢!

SELECT SUBSTRING(CONVERT(CHAR(14), DateTimeRaw, 100), 13, 2)  + ':' + 
CONVERT(nvarchar, DATEPART(minute, DateTimeRaw)) + ':' + 
CONVERT(nvarchar, DATEPART(second, 
DateTimeRaw)) + '.' + CONVERT(nvarchar, DATEPART(ms, DateTimeRaw) / 100)
 + ' ' + CONVERT(nvarchar, CASE WHEN datepart(hour, DateTimeRaw) 
< 12 THEN 'AM' ELSE 'PM' END)   AS AGMPLUSMSTIME
FROM RAW
4

2 回答 2

4
RIGHT('00' + CONVERT(nvarchar, DATEPART(minute, DateTimeRaw)), 2)

基本上:将 2 个零与您的时间值连接起来,以001,0023或之类的结尾,然后取最右边的 2 个字符,分别为0059您留下01, 。2359

于 2011-11-22T15:17:30.950 回答
0

这个怎么样:

select right(stuff(convert(varchar(26), getdate(), 9), 23,2, ' '), 13)

结果:

 4:35:15:4 PM

我使用 getdate() 而不是你的字段,只是作为一个例子

于 2011-11-22T15:35:35.057 回答