2016-10-05 6 views
0

私は4文字の年+ 2文字の月であるvarchar(20)を生成しようとしています。私はストアドプロシージャのパラメータとしてこれを使用したいと思います。私は2つのvarcharsを一緒に連結してこれを作り出すことができません。Concat 2 varchars in SQL

SELECT 
    GETDATE() AS CurrentDateTime, 
    CONVERT(VARCHAR(20), YEAR(GETDATE())) AS CurrentYear, 
    CONVERT(VARCHAR(20), MONTH(GETDATE())) AS CurrentMonth, 
    CurrentYear + CurrentMonth AS YearMonth 
+2

選択リストでは、列エイリアスを使用できません。変換をもう一度実行するか、派生テーブルにまとめてください。 – jarlh

+1

'Im連結できません 'というエラーがありますか?その後、エラーを通知します。 [** How-to-Ask **](http://stackoverflow.com/help/how-to-ask) \t \t [** START **](http ://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/)質問品質を向上させ、より良い回答を得る方法を学ぼう。 –

+1

ここでvarcharの値が大きすぎるように見えます。 4文字または2文字を保持するのに20文字は必要ありません。 2文字以上の長さはありません。 –

答えて

0

このようにしますか?

SELECT GETDATE() AS CurrentDateTime 
, Convert(VARCHAR(20),YEAR(GETDATE())) AS CurrentYear 
, Convert(VARCHAR(20),MONTH(GETDATE())) AS CurrentMonth 
, Convert(VARCHAR(20),YEAR(GETDATE())) + Convert(VARCHAR(20),MONTH(GETDATE())) AS YearMonth 

もすることができます

Year(GetDate()) * 100 + Month(GateDate()) AS YearMonth 

または最も単純な方法は、これを使用することです

Convert(varchar(6), GETDATE(), 112) AS YearMonth 
+0

これらの取引はすべて、1年分のコンボを返しています。私はこれらの変数を返さずにこれをSQLのパラメータ値として使用しようとしています。 –

+1

@ jon.nicholssoftware.com変換を2回実行してから結果を連結するのではなく、 'convert(varchar(6)、gatdate()、112)'を使うだけです。 – iamdave

+0

この回答は受け入れられていますが、はるかに優れた解決策があります。(例えば、 'Convert(varchar(6)、GETDATE()、112)') – Shnugo

1
SELECT GETDATE() AS CurrentDateTime 
, Convert(VARCHAR(20),YEAR(GETDATE())) + 
Convert(VARCHAR(20),MONTH(GETDATE())) 

列の別名は、から選択することができないので、上記のだろう。

+0

1月から9月(OP:* + 2文字月*)は何月ですか? – Shnugo

3

なぜ単に

SELECT GETDATE() AS CurrentDateTime 
, Convert(VARCHAR(20),YEAR(GETDATE())) AS CurrentYear 
, Convert(VARCHAR(20),MONTH(GETDATE())) AS CurrentMonth 
, Convert(varchar(6), GETDATE(), 112) AS YearMonth 
6

以下のユーザーによって提供される建設を使用:

SELECT Format(GetDate(), 'yyyyMM') as YearMonth 

は、introduced with Sql Server 2012であった。

+1

+1 Format()関数も掘り起こしますが、大きなセットのパフォーマンスは恐ろしいものです。 https://sqlperformance.com/2015/06/t-sql-queries/format-is-nice-and-all-but –