【问题标题】:sql server Get the FULL month name from a datesql server 从日期获取完整的月份名称
【发布时间】:2013-10-27 14:20:03
【问题描述】:

如何使用sql在sql server中获取整个月份的名称?
我没有找到使用DATEPART(mm, mydate) 或CONVERT(VARCHAR(12), CreatedFor, 107) 的方法。

基本上我需要格式:2009 年 4 月 1 日。

【问题讨论】:

  • 如果你能通过php过滤那就不太难了...
  • 谢谢你,乔,但我现在不使用 php。我还认为如果 sql 查询本身可以生成日期会更好。我确信从生成 sql 后的服务器端代码很容易。

标签: sql sql-server date-conversion


【解决方案1】:

大多数答案比必要的要复杂一些,或者没有提供所要求的确切格式。

select Format(getdate(), 'MMMM dd yyyy') --returns 'October 01 2020', note the leading zero
select Format(getdate(), 'MMMM d yyyy') --returns the desired format with out the leading zero: 'October 1 2020'

如果你想要一个逗号,像往常一样,使用:

select Format(getdate(), 'MMMM d, yyyy') --returns 'October 1, 2020'

注意:即使一天只有一个“d”,但在需要时会变成 2 位数的一天。

【讨论】:

    【解决方案2】:

    如果您使用的是 SQL Server 2012 或更高版本,您可以使用:

    SELECT FORMAT(MyDate, 'MMMM dd yyyy')
    

    您可以view the documentation了解有关格式的更多信息。

    【讨论】:

    • 这个功能只兼容sql server 2012,不过我有旧版本
    • 格式字符串必须是 'MMMM dd yyyy' 否则你会得到类似 'January DD YYYY' 的内容
    【解决方案3】:
    SELECT DATENAME(MONTH, GETDATE()) 
             + RIGHT(CONVERT(VARCHAR(12), GETDATE(), 107), 9) AS [Month DD, YYYY]
    

    OR Date without Comma 日期和年份之间,可以使用下面的

    SELECT DATENAME(MONTH, GETDATE()) + ' ' + CAST(DAY(GETDATE()) AS VARCHAR(2))
               + ' ' + CAST(YEAR(GETDATE()) AS VARCHAR(4)) AS [Month DD YYYY]
    

    【讨论】:

    • 请停止推荐日期/时间速记。如果您的意思是 MONTH,请输入 MONTH。 Using shorthand all the time leads to problems.
    • 你怎么知道我还没有投票?我多次访问很多问题,并不总是一口气解决所有问题——尤其是在我旅行的时候。我建议不要要求人们投票。如果您写出好的内容,它会说明一切。
    • @AaronBertrand 放轻松,伙计,你不必对我动手,这只是个玩笑。我怎么知道你没有投赞成票?显然你不同意我所做的(使用速记),你会投票给你不同意的东西吗???
    • 建议不要提倡使用惰性速记。这不会使答案错误或无用,这只是一个使答案更好的建议。
    【解决方案4】:

    109 - mon dd yyyy(在 SQL 转换中)

    要求的格式是 2009 年 4 月 1 日

    所以

     SELECT DATENAME(MONTH, GETDATE()) + RIGHT(CONVERT(VARCHAR(12), GETDATE(), 109), 9)
    

    结果是:

    【讨论】:

      【解决方案5】:
      select datename(DAY,GETDATE()) +'-'+ datename(MONTH,GETDATE()) +'- '+ 
             datename(YEAR,GETDATE()) as 'yourcolumnname'
      

      【讨论】:

      • 到 sql server 2008
      猜你喜欢
      • 1970-01-01
      • 2010-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-09
      • 2020-06-17
      • 2011-05-28
      相关资源
      最近更新 更多