【问题标题】:Format date as Month dd, yyyy?将日期格式化为 Month dd, yyyy?
【发布时间】:2013-06-27 13:00:53
【问题描述】:

在 SQL Server 中,我想从 DateTime 列中选择一个日期,格式为 Month dd, yyyy。

我目前正在使用以下代码:

SELECT CONVERT(VARCHAR(12), DateColumnHere, 107) 'Formatted Date'

返回:

Feb 15, 2013

有没有办法得到完整的月份名称,比如:

February 15, 2013

谢谢!

【问题讨论】:

标签: sql-server


【解决方案1】:

这是一个包含大量格式和少量 SQL 日期黑客的网站:

http://www.sql-server-helper.com/tips/date-formats.aspx

这是他们对您的格式的查询(月 dd,yyy):

SELECT DATENAME(MM, GETDATE()) + RIGHT(CONVERT(VARCHAR(12), GETDATE(), 107), 9) AS [Month DD, YYYY]

【讨论】:

    【解决方案2】:

    SQL Server 的日期格式数量有限,但您可以使用 DATENAME 函数来连接这些日期格式:

    SELECT DATENAME(MM, GETDATE()) + ' ' + 
           DATENAME(DD, GETDATE()) + ', ' + 
           DATENAME(YYYY, GETDATE())
           AS 'Formatted Date'
    

    但是一般来说最好的做法是将日期保留为日期格式而不是转换为字符串,并且仅在显示层(网站、报告、应用程序等)中转换为字符串格式化功能要丰富得多。另外,如果您转换为字符串,您将失去进行日期数学、排序等的能力。

    【讨论】:

      【解决方案3】:
      SELECT DATENAME(MM, GETDATE()) + RIGHT(CONVERT(VARCHAR(12), GETDATE(), 107), 9) AS [Month DD, YYYY]
      

      【讨论】:

        【解决方案4】:

        试试这个:

        SELECT STUFF(CONVERT(VARCHAR(12), GETDATE(), 107), 1,3,DATENAME(month,GETDATE()))
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-03-18
          • 2018-09-01
          • 1970-01-01
          • 2012-12-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多