72

「月」という整数列があります。月の2桁の数値を取得したいと思います。

これは私が試したものです:DATEPART(mm、@Date)

1月から9月まで1桁を返しますSQLServer2008を使用しています

誰か提案がありますか?

4

12 に答える 12

100

関数

FORMAT(date,'MM') 

2桁で仕事をします。

于 2014-07-11T10:36:43.700 に答える
86

それを行うさまざまな方法があります

  • RTRIMを使用して範囲を指定する:

お気に入り

SELECT RIGHT('0' + RTRIM(MONTH('12-31-2012')), 2); 
  • Substringを使用して、日付をテキストに変換した後、月の部分だけを抽出する

お気に入り

SELECT SUBSTRING(CONVERT(nvarchar(6),getdate(), 112),5,2)

フィドルを参照

これを取得する方法は他にもあるかもしれません。

于 2013-02-20T09:28:33.047 に答える
17

Pinal Daveには、 SQL番号に末尾の0を追加する方法に関するいくつかの例が記載された素晴らしい記事があります。

1つの方法は、RIGHT関数を使用することです。これにより、ステートメントは次のようになります。

SELECT RIGHT('00' + CAST(DATEPART(mm, @date) AS varchar(2)), 2)
于 2013-02-20T09:12:19.480 に答える
9

別の簡単なトリック:

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)

出力:

01
201501
于 2015-12-15T13:42:29.093 に答える
3

の代替DATEPART

SELECT LEFT(CONVERT(CHAR(20), GETDATE(), 101), 2)
于 2013-02-20T09:10:50.270 に答える
3

最初に varchar にキャストして、値が 1 から 9 の間にあるかどうかをチェックして、その前に 0 を追加します。

select case when DATEPART(month, getdate()) between 1 and 9 
then '0' else '' end + cast(DATEPART(month, getdate()) as varchar(2))
于 2013-02-20T09:10:02.147 に答える
2

簡単に使用できます:

SELECT RIGHT('0' + CAST(MONTH(@Date) AS NVARCHAR(2)), 2)
于 2017-01-18T17:40:47.333 に答える
1

試す:

select right ('0'+convert(nvarchar(2), DATEPART(mm, getdate())),2 )
于 2013-02-20T09:12:54.110 に答える
0
SELECT REPLACE(CONVERT(varchar, MONTH(GetDate()) * 0.01), '0.', '')
于 2020-05-22T17:00:45.783 に答える