【发布时间】: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组合这些值而不转换为varcharsCONCAT(DATENAME(MM, GETDATE()), ' ',DATEPART(DAY, GETDATE()), ', ', DATEPART(YEAR, GETDATE())) -
对不起,是的,我目前在 SQL Server 中工作。您确实使用 FORMAT() 函数解决了我的问题。欣赏它。
标签: sql sql-server datetime