【问题标题】:How to Convert datetime value to yyyymmddhhmmss in SQL server?如何在 SQL Server 中将日期时间值转换为 yyyymmddhhmmss?
【发布时间】:2014-06-01 18:24:54
【问题描述】:

如何将datetime 值转换为yyyymmddhhmmss

例如 来自2014-04-17 13:55:12

20140417135512

【问题讨论】:

标签: sql-server-2008-r2 datetime-format


【解决方案1】:

这似乎有效:

declare @d datetime
set @d = '2014-04-17 13:55:12'

select replace(convert(varchar(8), @d, 112)+convert(varchar(8), @d, 114), ':','') 

结果:

20140417135512

【讨论】:

    【解决方案2】:

    我用谷歌搜索的另一个选项,但包含几个替换...

    SELECT REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19), CONVERT(DATETIME, getdate(), 112), 126), '-', ''), 'T', ''), ':', '') 
    

    【讨论】:

      【解决方案3】:
      SELECT REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19), CONVERT(DATETIME, getdate(), 112), 126), '-', ''), 'T', ''), ':', '') 
      

      【讨论】:

        【解决方案4】:

        从 SQL Server 2012 版开始,您可以使用:

        SELECT format(getdate(),'yyyyMMddHHmmssffff')
        

        【讨论】:

        • 这大大简化了我的生活!
        【解决方案5】:

        此查询是将DateTimeOffset 转换为yyyyMMddhhss 格式,带有偏移量。我已从数据中替换了连字符 colon(:), period(.),并保留了连字符以将 Offset 与 DateTime 分开。

        SELECT REPLACE(SUBSTRING(CONVERT(VARCHAR(33),SYSDATETIMEOFFSET(),126), 1, 8), '-', '') +
        SUBSTRING(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(33), SYSDATETIMEOFFSET(), 126),'T',''),'.',''),':',''),9,DATALENGTH(CONVERT(VARCHAR(33), SYSDATETIMEOFFSET(), 126)))
        

        【讨论】:

          【解决方案6】:

          这个也可以

          SELECT replace(replace(replace(convert(varchar, getdate(), 120),':',''),'-',''),' ','')
          

          【讨论】:

            【解决方案7】:

            20090320093349

            SELECT CONVERT(VARCHAR,@date,112) + 
            LEFT(REPLACE(CONVERT(VARCHAR,@date,114),':',''),6)
            

            【讨论】:

            • 纯代码答案被认为是低质量的。如果您不编辑它以添加解释,您的答案很可能会被删除。
            【解决方案8】:

            FORMAT()CONVERT() 慢。这个答案比@jpx 的答案略好,因为它只在日期的时间部分进行替换。

            112 = yyyymmdd - no format change needed
            
            108 = hh:mm:ss - remove :
            
            SELECT CONVERT(VARCHAR, GETDATE(), 112) + 
                   REPLACE(CONVERT(VARCHAR, GETDATE(), 108), ':', '')
            

            【讨论】:

              猜你喜欢
              • 2013-10-30
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2020-12-23
              • 1970-01-01
              • 2021-05-27
              • 2010-12-03
              相关资源
              最近更新 更多