2016-03-30 16 views
1

さて、私はCONCAT関数を使用しています。CONCAT関数を使用して適切な値を返す

だから私は、START_DATEというフィールドに日付を持っています。それは2016-02-07のようです。

次に、私はSTART_YEARとしてstart_monthとYEAR(START_DATE)AS MONTH(START_DATE)を行うことをsubqueried。もちろん、start_monthは02とSTART_YEARリターン2016

を返します今、私はこれら二つを組み合わせてみたかったと言うことができますので、02/2016言います。私が単純に行う場合:

CONCAT( 'start_month'、 '/'、 'start_year')それはstart_month/start_yearを返し、CONCAT(start_month、 '/'、start_year)を実行するとエラーを返します:CONCAT:引数の型はint64ですが、予想される型の文字列または複数のバイトです。

だから私は間違って何をやっているし、私はこれをどのように修正するのですか?さらに、数字の月を実際の名前に変換する簡単な方法はありますか(つまり、02は2月になります)。簡単な方法がない場合は、それほど大きな問題ではありません。

答えて

2

from question: Obviously, start_month would return 02 and start_year returns 2016.

いや - 彼らは2と2016 respectivellyや文字列などの整数ないように返します - だから、あなたがSTRING

に月と年の値をキャストする必要がありMONTH()および/またはDate and time functions

の詳細を見ます例えば、
CONCAT(STRING(start_month)、 '/'、STRING(START_YEAR))

The better way to do this is as below

あなたは `マークは、投票の下に、投稿の回答の左にチェックマークを使用してanswer`受け入れ可能 -
SELECT STRFTIME_UTC_USEC('2016-02-07', "%m-%Y") 

は詳細SO上重要

is there an easy way I can convert the numerical months to their actual names (i.e. 02 becomes February)?

SELECT STRFTIME_UTC_USEC('2016-02-07', "%B") 
+0

ためhereを参照してください。重要な理由については、http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work#5235を参照してください。答えに投票することも重要です。役に立った答えを投票してください。もっとたくさんあります...誰かがあなたの質問に答えるときに何をすべきかを確認することができます - http://stackoverflow.com/help/someone-answers。 –

関連する問題