2016-09-07 6 views
1

Datekey変数EX:20141217からMonthNameとMonthNumberが必要です。私はMonthNumberを取得するために、Month関数を使用する式日付キーに関するお知らせ

convert(datetime,convert(varchar(10),InvoiceCreateDateKey,120)) 

し、それの上を使用して、日付と時刻の変数にDatekeyを変換しようとした

Month Name: December MonthNumber: 12 

として出力する必要があります。私が知りたい

MONTH(convert(datetime,convert(varchar(10),InvoiceCreateDateKey,120))) 

とMONTHNAME

DATENAME(m,convert(datetime,convert(varchar(10),InvoiceCreateDateKey,120))) 

については、この次の式Iは、この複雑な式以外で使用することができ、SQLの他の機能があるのですか?私はそれらの表現を簡素化したい。上記の式を使用して、私のSQLクエリは実行に非常に長い時間がかかります。

+0

クエリーのパフォーマンスが悪いのはなぜですか?単純なコンバージョンにwhere句を使用しない限り、クエリのパフォーマンスに大きな影響を及ぼすことはありません。 –

答えて

0

を取得するための日付構成要素に使用できるために112の変換を使用することができますか?結合を追加しますが、関数呼び出しを排除して複雑な式をクリーンアップします。あなたは、日付ごとにこのテーブルにカラムとして必要なフォーマットを保存し、日付キーに結合することができます。また、さまざまなタイムスライスでデータを集約するのにも非常に便利です。私はこれを使用して私の仕事を開始しました:http://www.codeproject.com/Articles/647950/Create-and-Populate-Date-Dimension-for-Data-Warehoしかしそこには他にもあるものがあります

+0

@ schiznig..Thankyou..That helped – jaya

0

SUBSTRINGを使用すると、Datekey文字列の5番目と6番目の文字を取得できます。

0

あなたは完全な日付の名前も

datename(month, convert(date, convert(nvarchar(10),InvoiceCreateDateKey), 112)) 

あなたはあなたのデータベースに日付ディメンションテーブルを持っていますか月の数

datepart(M,convert(date, convert(nvarchar(10),InvoiceCreateDateKey), 112)) 
関連する問題