【问题标题】:How to get date format (dd-MMM-yy HH:mm:ss) in SQL Server?如何在 SQL Server 中获取日期格式 (dd-MMM-yy HH:mm:ss)?
【发布时间】:2015-02-10 12:58:13
【问题描述】:

我想在 SQL Server 中将 getdate() 转换为这种格式 (10-Feb-15 18:25:57)。

select getdate()

了解我

2015-02-10 18:25:37.567

但我想要10-Feb-15 18:25:37 格式的日期。

如何将此日期格式转换为我需要的格式?

我是 SQL Server 的新手。

谢谢....

【问题讨论】:

  • 最好将这些数据保存在整个数据库中的DateTime 变量(没有具有 格式)中,并且只将其转换为字符串(并应用格式) 向用户呈现数据时——通常,有一个更合适的层(报告工具或其他语言)可以轻松处理此类格式问题,而不是尝试在数据库内部的 T-SQL 中进行处理。

标签: sql sql-server sql-server-2008


【解决方案1】:

这将为您提供确切的格式:

SELECT 
  STUFF(STUFF(CONVERT(char(20), getdate(), 113),3,1, '-'),7,1,'-')

【讨论】:

    【解决方案2】:

    不完全是这样,但最接近的是:

    select convert(varchar, getdate(), 113)
    
    10 Feb 2015 15:00:30:513
    

    要获得没有毫秒的时间,您可以缩短字符串:

    select convert(varchar(20), getdate(), 113)
    

    您可以在此处找到格式:https://msdn.microsoft.com/en-us/library/ms187928%28v=sql.100%29.aspx

    如果您真的需要这种确切的格式,我认为您必须使用 datepart / datename。

    【讨论】:

      【解决方案3】:

      日期类型没有任何格式,它们是二进制类型。仅当您要将日期值转换为字符串时,格式才适用。

      在 SQL Server 2012+ 中,您可以使用 FORMAT 函数将日期格式化为 .NET 支持的任何标准格式字符串或自定义格式字符串,例如:

      DECLARE @d DATETIME = GETDATE();
      SELECT FORMAT( @d, 'dd-MMM-yy HH:mm:ss', 'en-US' ) 
      ------------------
      10-Feb-15 15:35:55
      

      在 SQL Server 的早期版本中,您只能使用一些使用 CONVERT 的预定义格式,或通过连接日期部分值来构造最终字符串。

      【讨论】:

        【解决方案4】:
        SELECT REPLACE(CONVERT(varchar(11),SYSDATETIME(),13),' ','-')+' '+ CONVERT(VARCHAR(8), SYSDATETIME(), 8)
        

        【讨论】:

          【解决方案5】:

          在您的情况下,没有适合您需要的常规日期时间格式。您必须分别格式化日期和时间,并用破折号替换空格。

          以下内容将以您请求的格式生成日期时间:

          select replace(convert(varchar(9), getdate(), 6), ' ', '-')
                 + ' ' + convert(varchar(8), getdate(), 8)
          

          结果:

          10-Feb-15 14:08:54
          

          有关格式化日期时间的 MSDN 文档:CAST and CONVERT (Transact-SQL)

          【讨论】:

            【解决方案6】:

            我们可以将日期转换成多种格式
            选择转换(NVARCHAR,getdate(),106)
            这可能会帮助你 Click

            【讨论】:

              猜你喜欢
              • 2010-10-28
              • 1970-01-01
              • 2014-10-30
              • 1970-01-01
              • 1970-01-01
              • 2018-04-30
              • 1970-01-01
              • 2019-06-25
              • 2019-11-28
              相关资源
              最近更新 更多