「月」という整数列があります。月の2桁の数値を取得したいと思います。
これは私が試したものです:DATEPART(mm、@Date)
1月から9月まで1桁を返しますSQLServer2008を使用しています
誰か提案がありますか?
「月」という整数列があります。月の2桁の数値を取得したいと思います。
これは私が試したものです:DATEPART(mm、@Date)
1月から9月まで1桁を返しますSQLServer2008を使用しています
誰か提案がありますか?
関数
FORMAT(date,'MM')
2桁で仕事をします。
それを行うさまざまな方法があります
お気に入り
SELECT RIGHT('0' + RTRIM(MONTH('12-31-2012')), 2);
お気に入り
SELECT SUBSTRING(CONVERT(nvarchar(6),getdate(), 112),5,2)
フィドルを参照
これを取得する方法は他にもあるかもしれません。
Pinal Daveには、 SQL番号に末尾の0を追加する方法に関するいくつかの例が記載された素晴らしい記事があります。
1つの方法は、RIGHT
関数を使用することです。これにより、ステートメントは次のようになります。
SELECT RIGHT('00' + CAST(DATEPART(mm, @date) AS varchar(2)), 2)
別の簡単なトリック:
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
最初に 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))
簡単に使用できます:
SELECT RIGHT('0' + CAST(MONTH(@Date) AS NVARCHAR(2)), 2)
試す:
select right ('0'+convert(nvarchar(2), DATEPART(mm, getdate())),2 )
SELECT REPLACE(CONVERT(varchar, MONTH(GetDate()) * 0.01), '0.', '')