如何在sql中获取AM / PM格式的当前时间

时间:2017-05-13 12:11:58

标签: sql sql-server tsql

查询我正在使用=>

replace(substring(CONVERT(varchar,SWITCHOFFSET(SYSDATETIMEOFFSET(), '+05:30'),100),13,LEN(CONVERT(varchar,getdate(),100))), ' +05:30','') 

输出我得= => 5:40PM

但我想输出=> 5:40 PM

那么如何才能获得此输出

2 个答案:

答案 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