【问题标题】:SQL Date Format 107 Without Leading Zeros For The DaySQL日期格式107当天没有前导零
【发布时间】:2016-04-04 18:39:06
【问题描述】:

我需要通过 SQL 将日期/时间戳转换为以下格式: 2016 年 4 月 4 日

使用

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

几乎得到了我需要的东西,但是,它在当天放了一个领先的 0,给我留下了: April 04, 2016

我怎样才能摆脱当天领先的0?

【问题讨论】:

  • 您的 DBMS 和版本号是多少?从它看起来像 SQL Server 的格式?如果有,是什么版本?
  • 您可以通过使用CONVERT(VARCHAR, DATEPART(DAY, GETDATE())) 获得这一天,但是如果您使用的是 sql 2012+,那么您需要在一年中使用另一个函数 CONVERT(VARCHAR, DATEPART(YEAR, GETDATE())),您可以使用 CONCAT 组合这些值而不转换为varchars CONCAT(DATENAME(MM, GETDATE()), ' ',DATEPART(DAY, GETDATE()), ', ', DATEPART(YEAR, GETDATE()))
  • 对不起,是的,我目前在 SQL Server 中工作。您确实使用 FORMAT() 函数解决了我的问题。欣赏它。

标签: sql sql-server datetime


【解决方案1】:

或者,如果您使用SQL Server 2012 或更高版本,您可以使用FORMAT() 函数:

Select Format(GetDate(), 'MMMM d, yyyy')

2016 年 4 月 4 日

【讨论】:

    【解决方案2】:

    这将起作用:

    查询:

    SELECT DATENAME(MM, GETDATE())+' '+DATENAME(dd, GETDATE())+' '+DATENAME(yy, GETDATE()) AS [PaymentDate];
    

    结果:

    【讨论】:

      猜你喜欢
      • 2011-10-07
      • 1970-01-01
      • 2018-10-25
      • 1970-01-01
      • 2014-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-07
      相关资源
      最近更新 更多