【问题标题】:extracting date format from getdate()从 getdate() 中提取日期格式
【发布时间】:2011-10-24 19:05:44
【问题描述】:

我正在尝试获取 YYYYMMDDHHMM 格式的 getdate。

我写了一个这样的查询:

SELECT CAST(CONVERT(VARCHAR, GETDATE(), 112) AS VARCHAR)+CONVERT(VARCHAR,DATEPART(hh,GETDATE())) 
+CONVERT(VARCHAR,DATEPART(minute,GETDATE())) 

它给了我正确的输出,但是有没有一种简单的方法呢?

【问题讨论】:

  • 不,直到next release。除非您想使用样式 121 和 2 REPLACE 调用。

标签: sql-server tsql sql-server-2008 datetime


【解决方案1】:

不知道这有多“简单”,但是:

SELECT CONVERT(CHAR(8), GETDATE(), 112) 
       + REPLACE(CONVERT(CHAR(5), GETDATE(), 108), ':', '')

【讨论】:

  • 为我工作。非常感谢!
【解决方案2】:

或者这个(因为它只引用了 GETDATE() 一次,所以它们永远无法计算出不同日期的不一致值):

SELECT REPLACE(REPLACE(REPLACE(CONVERT(CHAR(16),GETDATE(),120),'-',''),' ',''),':','')

【讨论】:

  • @MartinSmith 我的理解是 GETDATE() 在查询中的每列只评估一次。在这一点上我错了吗?
  • @JoeStefanelli - 不确定。我认为每个函数引用一次。必须做一个快速测试!
  • @Joe This test indicates once per function reference(顺便说一句:堆栈交换缓存查询结果,这就是为什么它总是说它需要 2706 次迭代)
  • @MartinSmith 非常有趣。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-28
  • 2020-10-05
相关资源
最近更新 更多