查询我正在使用=>
replace(substring(CONVERT(varchar,SWITCHOFFSET(SYSDATETIMEOFFSET(), '+05:30'),100),13,LEN(CONVERT(varchar,getdate(),100))), ' +05:30','')
输出我得= => 5:40PM
但我想输出=> 5:40 PM
那么如何才能获得此输出
答案 0 :(得分:1)
您可以使用stuff()
在上午/下午之前添加空格。您也可以将replace()
长度设置为substring()
来删除8
。
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()
is nice and all, but… - Aaron Bertrand
rextester演示:http://rextester.com/NITZM59410
答案 1 :(得分:0)
您可以使用以下100转换
setLabel