【问题标题】:To convert date format in SQL Server在 SQL Server 中转换日期格式
【发布时间】:2021-10-02 22:41:36
【问题描述】:

如何将格式为2017-06-30 23:59:59.000 的日期转换为JUNE 2017

我需要使用 SQL 查询来做到这一点。

【问题讨论】:

  • date_format() 在您的 dbms 中不起作用吗?
  • @ArpitaDutta,请检查我的回答。
  • 根据问题指南,请展示您的尝试并告诉我们您发现了什么(在本网站或其他地方)以及为什么它不能满足您的需求。
  • 仅供参考,如果您正确地将日期时间值存储在 datetime 数据类型中,那么它没有显示格式,它存储为二进制。

标签: sql sql-server date tsql datetime


【解决方案1】:

SELECT DATE_FORMAT(column_name, "%M %Y") as alias_column_name FROM tabel_name

示例

SELECT DATE_FORMAT(created_at, "%M %Y") as created_at FROM tabel1

使用sql的DATE_FORMAT(date, format)函数。

https://www.w3schools.com/mysql/func_mysql_date_format.asp

https://www.mssqltips.com/sqlservertip/1145/date-and-time-conversions-using-sql-server/ 使用 SQL Server 进行日期和时间转换

【讨论】:

  • 我不认为 `DATE_FORMAT' 是 SQL Server 内置函数。
【解决方案2】:

DATENAME 函数将返回月份的名称

SELECT DATENAME(month,'2017-06-30 23:59:59.000')+' '+CAST(YEAR('2017-06-30 23:59:59.000') AS VARCHAR) 'Month Name'
SELECT DATENAME(mm,'2017-06-30 23:59:59.000')+' '+CAST(YEAR('2017-06-30 23:59:59.000') AS VARCHAR) 'Month Name'
SELECT DATENAME(m,'2017-06-30 23:59:59.000')+' '+CAST(YEAR('2017-06-30 23:59:59.000') AS VARCHAR) 'Month Name'

这将返回

June 2017

如果您想从表中获取它,请替换以下查询中的表和列名。

SELECT DATENAME(month,ColumnName)+' '+CAST(YEAR(ColumnName) AS VARCHAR) 'Month Name' 
FROM TabeName

【讨论】:

    【解决方案3】:

    您可以为此使用FORMAT 函数

    SELECT FORMAT(CAST('2017-06-30 23:59:59.000' AS datetime), 'MMMM yyyy');
    

    结果

    June 2017
    

    SQL Fiddle

    【讨论】:

    • 我也喜欢FORMAT 解决方案,但有一点小改动:MMMM yy 而不是MMM yy(得到JUNE,而不是JUN)。从我这边 +1。
    【解决方案4】:

    sql server中的DATENAME函数返回月份的名称。

    SELECT DATENAME(MM, GETDATE()) + ' ' + CAST(YEAR(GETDATE()) AS VARCHAR()) AS 
                                                                       [Month YYYY]
    

    更多信息可以参考:http://www.sql-server-helper.com/tips/date-formats.aspx

    【讨论】:

      【解决方案5】:

      这是 MS SQL 的最佳答案。

      Create table Test(
      SampleDate datetime
      )
      insert into Test(SampleDate)values('07/20/2021 10:20:05'),('08/21/2021 20:30:11')
      

      这是您获取格式的查询

      select FORMAT(SampleDate, 'MMMM yyyy') YourFormat from Test
      --select FORMAT(SampleDate, 'MM/dd/yyyy hh:mm tt') EditedDate from Test
      

      You can see the output here.

      以上查询返回以下输出:

      2021 年 7 月

      2021 年 8 月

      【讨论】:

        猜你喜欢
        • 2019-01-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多