2010年05月30日

SQL豆知識【59】

第59回目のSQLの豆知識としまして

変換関数(CONVERT)の

datetime型または、smalldatetime型の

データ変換についての

説明を行っていきたいと思います。


① 『CONVERT』

データ型を変換する関数です。

書式としましては以下の様になります。

≪SQL SERVER≫

【書式】


CONVERT(date_type,expression[,style])


【引数】


date_type :変換するデータ型
expression:データ
style     :変換する方法を指定する整数式


【戻り値】


変換したデータ型の値



● styleに指定できる値

No 世紀無(yy) 世紀有(yyyy) 標準 入力/出力(※1)
0 または 100(※2) 既定値 mon dd yyyy hh:miAM(またはPM)
101 アメリカ mm/dd/yyyy
102 ANSI yy.mm.dd
103 イギリス/フランス dd/mm/yy
104 ドイツ dd.mm.yy
105 イタリア dd-mm-yy
106 dd mon yy
107 Mon dd, yy
108 hh:mm:ss
10 9または109(※2) 既定値 + ミリ秒 mon dd yyyy hh:mi:ss:mmmAM(またはPM)
11 10 110 アメリカ mm-dd-yy
12 11 111 日本 YY/mm/dd
13 12 112 ISO yymmdd
14 13または113(※2) ヨーロッパ:既定値+ミリ秒 dd mon yyyy hh:mm:ss:mmm(24h)
15 14 114 hh:mi:ss:mmm(24h)
16 20または120(※2) ODBC標準 yyyy-mm-dd hh:mi:ss(24h)
17 21または121(※2) ODBC標準(ミリ秒を含む) yyyy-mm-dd hh:mi:ss.mmm(24h)
18 126(※3) ISO8601 yyyy-mm-ddThh:mm:ss.mmm(スペースなし)
19 130(※2) イスラム(※4) dd mon yyyy hh:mi:ss:mmmAM
20 131(※2) イスラム(※4) dd/mm/yy hh:mi:ss:mmmAM


(※1)datetimeに変換時は入力。 文字データに変換時は出力。

(※2)既定値(styleが、0または100、9または109、

    13または113、20または120、21または121)時は、

    常に年が4桁で返されます。

(※3)XML用。

(※4)イスラム暦にはいくつかの種類があり、

    クウェート アルゴリズムを採用しています。


それでは『CONVERT』について実際に行ってみたいと思います。

システム日付(現日付)を各書式で変換してみます。

ちなみに、検索結果列名の番号と上記表の番号が紐付いています。



SELECT GETDATE() 現日付,
    CONVERT(VARCHAR,GETDATE(),100) No1,
    CONVERT(VARCHAR,GETDATE(),1) [No2-YY],
    CONVERT(VARCHAR,GETDATE(),101) [No2-YYYY],
    CONVERT(VARCHAR,GETDATE(),2) [No3-YY],
    CONVERT(VARCHAR,GETDATE(),102) [No3-YYYY],
    CONVERT(VARCHAR,GETDATE(),3) [No4-YY],
    CONVERT(VARCHAR,GETDATE(),103) [No4-YYYY]

SELECT GETDATE() 現日付,
    CONVERT(VARCHAR,GETDATE(),4) [No5-YY],
    CONVERT(VARCHAR,GETDATE(),104) [No5-YYYY],
    CONVERT(VARCHAR,GETDATE(),5) [No6-YY],
    CONVERT(VARCHAR,GETDATE(),105) [No6-YYYY],
    CONVERT(VARCHAR,GETDATE(),6) [No7-YY],
    CONVERT(VARCHAR,GETDATE(),106) [No7-YYYY],
    CONVERT(VARCHAR,GETDATE(),7) [No8-YY],
    CONVERT(VARCHAR,GETDATE(),107) [No8-YYYY]

SELECT GETDATE() 現日付,
    CONVERT(VARCHAR,GETDATE(),8) [No9-YY],
    CONVERT(VARCHAR,GETDATE(),108) [No9-YYYY],
    CONVERT(VARCHAR,GETDATE(),109) [No10-YYYY],
    CONVERT(VARCHAR,GETDATE(),10) [No11-YY],
    CONVERT(VARCHAR,GETDATE(),110) [No11-YYYY],
    CONVERT(VARCHAR,GETDATE(),11) [No12-YY],
    CONVERT(VARCHAR,GETDATE(),111) [No12-YYYY]

SELECT GETDATE() 現日付,
    CONVERT(VARCHAR,GETDATE(),12) [No13-YY],
    CONVERT(VARCHAR,GETDATE(),112) [No13-YYYY],
    CONVERT(VARCHAR,GETDATE(),109) [No14-YYYY],
    CONVERT(VARCHAR,GETDATE(),14) [No15-YY],
    CONVERT(VARCHAR,GETDATE(),114) [No15-YYYY],
    CONVERT(VARCHAR,GETDATE(),120) [No16-YYYY]

SELECT GETDATE() 現日付,
    CONVERT(VARCHAR,GETDATE(),121) [No17-YYYY],
    CONVERT(VARCHAR,GETDATE(),126) [No18-YYYY],
    CONVERT(VARCHAR,GETDATE(),130) [No19-YYYY],
    CONVERT(VARCHAR,GETDATE(),131) [No20-YYYY]



図1

図1の様に、

『システム日付(現日付)』に対して
各書式にて変換が掛けられた値が求められたのが分かります。


今回は、基本的な使用方法を説明しましたが、

色々な使い方がありますので是非、使用して試してみてください。

次回も引き続き、

『変換関数』の説明を行います。


Blog Ranking
ブログランキングに参加しています。

---------------------------------------------------------------------------------------------------------------
   ■ 弊社の事をお知りになりたい方
   ■ 弊社へ入社希望の方(転職希望の方)
   ■ その他、ご相談やご連絡を取りたい方は
     


画面上部の「オ-ナ-へメッセ-ジ」よりご連絡を下さい。

  


Posted by JOB CAFE at 16:51Comments(0)SQL

2010年05月16日

SQL豆知識【58】


第58回目のSQLの豆知識としまして

図1の様な『商品マスタ』の

テーブルデータが存在していたとします。

商品マスタ


図1

図1の『商品マスタ』を基に

変換関数(ISNULL)についての

説明を行っていきたいと思います。


① 『ISNULL』

NULL値を変換する関数です。

書式としましては以下の様になります。

≪SQL SERVER≫

【書式】


ISNULL(expression ,replacement_value)


【引数】


expression       :NULLが入っている式(列)
replacement_value:変換する値


【戻り値】


変換された値



ちなみにORACLEで同様の処理を行う場合は

以下の関数を使用します。

≪ORACLE≫

【書式】


NVL(expression ,replacement_value)


【引数】


expression       :NULLが入っている式(列)
replacement_value:変換する値


【戻り値】


変換された値



それでは『ISNULL』について実際に行ってみたいと思います。

商品マスタ・仕入単価、卸単価がNULLの場合、

ゼロに置き換えてみます。



SELECT 商品ID,商品名,
    ISNULL(仕入単価,0) 仕入単価,
    ISNULL(卸単価,0) 卸単価
 FROM 商品マスタ



図2

図2の様に、

『商品マスタ・仕入単価、卸単価』に対して

『商品マスタ・商品ID = 6』の値が

ゼロに置き換わったのが分かります。


今回は、基本的な使用方法を説明しましたが、

色々な使い方がありますので是非、使用して試してみてください。

次回も引き続き、

『変換関数』の説明を行います。


Blog Ranking
ブログランキングに参加しています。

---------------------------------------------------------------------------------------------------------------
   ■ 弊社の事をお知りになりたい方
   ■ 弊社へ入社希望の方(転職希望の方)
   ■ その他、ご相談やご連絡を取りたい方は
     


画面上部の「オ-ナ-へメッセ-ジ」よりご連絡を下さい。

  


Posted by JOB CAFE at 10:46Comments(0)SQL
プロフィール
JOB CAFE
JOB CAFE
株式会社 ネクサス
                  
本社 :静岡県浜松市中区大工町311-15
            
     TEL:053-451-0830           
     FAX:053-451-0832
オーナーへメッセージ
QRコード
QRCODE
アクセスカウンタ
読者登録
メールアドレスを入力して登録する事で、このブログの新着エントリーをメールでお届けいたします。解除は→こちら
現在の読者数 1人