当前位置:  开发笔记 > 编程语言 > 正文

可以避免在QUERY中重复表达式

如何解决《可以避免在QUERY中重复表达式》经验,为你挑选了1个好方法。

我必须以奇怪的格式显示时间.例如,如果时间是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), ':', '')

虽然这个答案并没有以通用的方式解决原始问题,但它仍然以不同的方式解决了我的问题.



1> Shannon Seve..:

除了其他答案中的函数,您还可以在公用表表达式(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

推荐阅读
mobiledu2402851323
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有