2017-02-07 11 views

答えて

0

私が正しく質問を理解していれば、あなたは121947としての価値'1947-12-01 00-00-00'ENDDATEを必要としています。あなたが2012バージョン以上で作業している場合は、以下のクエリ

SELECT RIGHT(MONTH(ENDDATE)*1010000+YEAR(ENDDATE),6) 
+0

これはintを返すので、char(6)へのキャストでラップする必要があります。 –

+0

Thanx @ZoharPeled、答えを修正しました。 –

+0

もう1つのこと - 10月より前のモチーフの場合、これは5桁の結果を返します。 OPはそれが良いか悪いかを特定しなかった。必要に応じて簡単に修正できます。 –

0

を使用することができ、あなたはフォーマットを使用することができます。

DECLARE @D as date = '1947-12-01' 

SELECT REPLACE(RIGHT(CONVERT(char(10), @d, 103), 7), '/', '') As charValue2008, 
     FORMAT(@d, 'MMyyyy') as charValue2012 

結果:あなたは、行の多くを持っている場合は、別のものを選択したい場合がありますので

charValue2008 charValue2012 
121947   121947 

は、そのFormat実行relativley遅いのでご注意ください以前のバージョンについては、いくつかの文字列操作で変換し使用することができますそれを行う方法。

関連する問題