我必须以奇怪的格式显示时间.例如,如果时间是15:30:45.5000,我需要显示"153045.5".
为此,我有以下查询:
SELECT LEFT(CONVERT(varchar(20), GETDATE(), 114), 2) + SUBSTRING(CONVERT(varchar(20), GETDATE(), 114), 4, 2) + SUBSTRING(CONVERT(varchar(20), GETDATE(), 114), 7, 2) + '.' + SUBSTRING(CONVERT(varchar(20), GETDATE(), 114), 10, 1);
有什么我可以做的,以避免重复表达CONVERT(varchar(20),GETDATE(),114)?
编辑:
我在这里看到了一个非常酷的答案,在我刷新页面之后由于某种原因被删除了,但它让我想到了一个替代解决方案:
SELECT REPLACE(RIGHT(CONVERT(varchar(21), getdate(), 126), 10), ':', '')
虽然这个答案并没有以通用的方式解决原始问题,但它仍然以不同的方式解决了我的问题.
除了其他答案中的函数,您还可以在公用表表达式(CTE)或内联视图中计算部分结果:
; WITH gd(getDate_114) AS (SELECT CONVERT(VARCHAR(20), GETDATE(), 114)) SELECT LEFT(getDate_114, 2) + SUBSTRING(gd.getDate_114, 4, 2) + SUBSTRING(gd.getDate_114, 7, 2) + '.' + SUBSTRING(gd.getDate_114, 10, 1) FROM gd