如何从 SQL Server 中的日期获取月份编号(不是月份名称)?
Posted
技术标签:
【中文标题】如何从 SQL Server 中的日期获取月份编号(不是月份名称)?【英文标题】:How can I get the month number (not month name) from a date in SQL Server? 【发布时间】:2013-02-05 09:34:56 【问题描述】:如何在sql中获取月份数?我使用以下代码,但它返回月份名称。
SELECT DATENAME(mm, GETDATE())
【问题讨论】:
【参考方案1】:使用带有 m 扩展名的 datepart 函数。
SELECT DATEPART(m, getdate())
【讨论】:
有趣的是m
和mm
格式都返回月份数。【参考方案2】:
使用月份功能 - SELECT MONTH(GETDATE())
【讨论】:
这完全按照 OP 的要求工作,在我看来更具可读性。【参考方案3】:使用Datepart:
DATEPART(mm,getdate());
【讨论】:
有趣的是m
和mm
格式都返回月份数。这个帖子有两个绝对正确的答案:)【参考方案4】:
你想要DATEPART
:
select datepart(mm, getdate())
【讨论】:
【参考方案5】:你也可以用它来填充月份数
SELECT RIGHT('00' + RTRIM( CAST( DATEPART( MONTH, GETDATE() ) AS varchar(2)) ) , 2)
【讨论】:
【参考方案6】:试试下面的:
SELECT DATEPART(mm,getdate())
【讨论】:
【参考方案7】:如果是一月到九月,这将返回两个字符:
SELECT CASE WHEN LEN(MONTH(GETDATE())) = 1 THEN '0' + CAST(MONTH(GETDATE()) AS VARCHAR(2))
WHEN LEN(MONTH(GETDATE())) = 2 THEN CAST(MONTH(GETDATE()) AS VARCHAR(2)) END
【讨论】:
以上是关于如何从 SQL Server 中的日期获取月份编号(不是月份名称)?的主要内容,如果未能解决你的问题,请参考以下文章