【问题标题】:SQL Server Date Formats -- dddSQL Server 日期格式——ddd
【发布时间】:2010-12-14 16:24:03
【问题描述】:

如何在 SQL 中获取星期几(ddd 格式,例如周一、周二等)? 我在 CAST 和 CONVERT 文档中没有看到任何关于它的内容..

【问题讨论】:

    标签: sql sql-server formatting date


    【解决方案1】:

    试试这个

    SELECT DATEPART(DW, '1/1/2009')
    

    在此处阅读 DATEPART

    http://msdn.microsoft.com/en-us/library/ms174420.aspx

    【讨论】:

      【解决方案2】:

      方法很多,这里有一种方法:

      SELECT LEFT(DATENAME(dw, GETDATE()), 3)
      

      【讨论】:

        【解决方案3】:

        您可以使用 DATENAME 方法提取日期,然后使用 SUBSTRING 仅获取前 3 个字符。

        SELECT SUBSTRING(DATENAME(DW, '09/11/2009'), 1, 3)
        

        【讨论】:

          【解决方案4】:

          你不能开箱即用,但你可以做一整天

          例如

          select datename(weekday,getdate())

          返回“星期一”,您可以只取前 3 个字母。

          【讨论】:

            【解决方案5】:

            我会使用
            SELECT CONVERT(CHAR(3),DATENAME(weekday,GETDATE()))
            为了避免在 SQL 中使用另一个函数,转换为 CHAR(3) 隐式采用前 3 个字符。

            乔纳森

            【讨论】:

              【解决方案6】:

              对于 SQL Server 2012+:

              SELECT FORMAT(GETUTCDATE(),'ddd') AS ShortDayName
              

              这比子字符串解决方案要干净得多。 FORMAT() 函数也可以传递一种区域性格式的文化。

              请注意,这适用于其他日期部分,例如月份:

              SELECT FORMAT(GETUTCDATE(),'MMM') AS ShortMonthName
              

              FORMAT() Reference

              【讨论】:

              • 我一定会在我最终使用 SQL 2012 时检查一下!也许在 2020 年之前
              猜你喜欢
              • 1970-01-01
              • 2017-05-12
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2019-01-23
              • 2011-10-05
              • 1970-01-01
              相关资源
              最近更新 更多