查询我正在使用=>
replace(substring(CONVERT(varchar,SWITCHOFFSET(SYSDATETIMEOFFSET(), '+05:30'),100),13,LEN(CONVERT(varchar,getdate(),100))), ' +05:30','')
我得到的输出=> 5:40PM
但我想要输出=> 5:40 PM
那么我怎样才能得到这个输出
stuff()
在 AM/PM 之前添加空格。还可以通过将substring()
长度设置为 8
来删除replace()
。
select stuff(substring(convert(varchar(30),switchoffset(sysdatetimeoffset(), '+05:30'),100),13,8),6,0,' ')
如果要删除前导空格,可以将上述内容括在 ltrim()
中。
您还可以使用两个replace()
以及转换为time
和样式100
。
select replace(replace(convert(varchar(8),convert(time,switchoffset(sysdatetimeoffset(), '+05:30')),100),'AM',' AM'),'PM',' PM')
在 sql Server 2012+ 中,您可以使用format()
select format(switchoffset(sysdatetimeoffset(), '+05:30'),'h:mm tt')
但是format()
可以慢一点,看看这里:format()
很好,但是...... - 亚伦·伯特兰
Rextester 演示:http://rextester.com/NITZM59410
您可以使用 100 转换,如下所示
select CONVERT(varchar(8),CAST(getdate() AS TIME),100)