Sql server 2008 删除sql server 2008中24小时时间的前导零
我有这个密码Sql server 2008 删除sql server 2008中24小时时间的前导零,sql-server-2008,datetime,Sql Server 2008,Datetime,我有这个密码 SELECT convert(varchar(5), getdate(), 108) 返回09:00或其他时间 我希望它返回9:00,当它是下午1:00时,我希望它返回13:00。一种不雅观但实用的方法就是使用CASE语句测试前导零的存在,如果存在,则将其删除: DECLARE @TheDate DATETIME SET @TheDate = '2015-04-14 09:30:00.000' SELECT CASE WHEN LEFT(conver
SELECT convert(varchar(5), getdate(), 108)
返回09:00或其他时间
我希望它返回9:00,当它是下午1:00时,我希望它返回13:00。一种不雅观但实用的方法就是使用CASE语句测试前导零的存在,如果存在,则将其删除:
DECLARE @TheDate DATETIME
SET @TheDate = '2015-04-14 09:30:00.000'
SELECT
CASE
WHEN LEFT(convert(varchar(5), @TheDate, 108),1) != '0'
THEN convert(varchar(5), @TheDate, 108)
ELSE RIGHT(convert(varchar(5), @TheDate, 108), 4)
END
SET @TheDate = '2015-04-14 13:00:00.000'
SELECT
CASE
WHEN LEFT(convert(varchar(5), @TheDate, 108),1) != '0'
THEN convert(varchar(5), @TheDate, 108)
ELSE RIGHT(convert(varchar(5), @TheDate, 108), 4)
END
SET @TheDate = GETDATE()
SELECT
CASE
WHEN LEFT(convert(varchar(5), @TheDate, 108),1) != '0'
THEN convert(varchar(5), @TheDate, 108)
ELSE RIGHT(convert(varchar(5), @TheDate, 108), 4)
END
稍微有趣一点,但没有任何简单的借口(改编自):
DECLARE @TheDate DATETIME
SET @TheDate = '2015-04-14 09:30:00.000'
SELECT substring(convert(varchar(5), @TheDate, 108), patindex('%[^0]%',convert(varchar(5), @TheDate, 108)), 10)
SET @TheDate = '2015-04-14 13:00:00.000'
SELECT substring(convert(varchar(5), @TheDate, 108), patindex('%[^0]%',convert(varchar(5), @TheDate, 108)), 10)
SET @TheDate = GETDATE()
SELECT substring(convert(varchar(5), @TheDate, 108), patindex('%[^0]%',convert(varchar(5), @TheDate, 108)), 10)