获得本月2位数字

Ada*_*dam 52 sql t-sql sql-server sql-server-2008

我有一个整数列"月"我希望得到一个月的2位数.

这就是我的尝试:DATEPART(mm,@ Date)

它返回1月到9月的一个数字我正在使用SQL Server 2008

有人有建议吗?

Ank*_*ail 72

有不同的方法

  • 使用RTRIM并指定范围:

喜欢

SELECT RIGHT('0' + RTRIM(MONTH('12-31-2012')), 2); 
Run Code Online (Sandbox Code Playgroud)
  • 使用Substring仅在将日期转换为文本后提取月份部分

喜欢

SELECT SUBSTRING(CONVERT(nvarchar(6),getdate(), 112),5,2)
Run Code Online (Sandbox Code Playgroud)

小提琴

可能还有其他方法可以解决这个问题.


小智 67

功能

FORMAT(date,'MM') 
Run Code Online (Sandbox Code Playgroud)

将以两位数完成工作.

  • 在SQL Server 2012中添加.问题表明使用2008. (7认同)

Sch*_*zIT 15

Pinal Dave有一篇很好的文章,其中有一些关于如何向SQL数字添加尾随0的示例.

一种方法是使用该RIGHT函数,这将使语句如下所示:

SELECT RIGHT('00' + CAST(DATEPART(mm, @date) AS varchar(2)), 2)
Run Code Online (Sandbox Code Playgroud)


Már*_*les 7

另一个简单的伎

SELECT CONVERT(char(2), cast('2015-01-01' as datetime), 101) -- month with 2 digits
SELECT CONVERT(char(6), cast('2015-01-01' as datetime), 112) -- year (yyyy) and month (mm)
Run Code Online (Sandbox Code Playgroud)

输出:

01
201501
Run Code Online (Sandbox Code Playgroud)


小智 6

转换(字符(2),getdate(),101)