2010年05月30日
SQL豆知識【59】
第59回目のSQLの豆知識としまして
変換関数(CONVERT)の
datetime型または、smalldatetime型の
データ変換についての
説明を行っていきたいと思います。
① 『CONVERT』
データ型を変換する関数です。
書式としましては以下の様になります。
≪SQL SERVER≫
【書式】
CONVERT(date_type,expression[,style])
【引数】
date_type :変換するデータ型
expression:データ
style :変換する方法を指定する整数式
【戻り値】
変換したデータ型の値
● styleに指定できる値
(※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の様に、
『システム日付(現日付)』に対して
各書式にて変換が掛けられた値が求められたのが分かります。
今回は、基本的な使用方法を説明しましたが、
色々な使い方がありますので是非、使用して試してみてください。
次回も引き続き、
『変換関数』の説明を行います。
ブログランキングに参加しています。
---------------------------------------------------------------------------------------------------------------
■ 弊社の事をお知りになりたい方
■ 弊社へ入社希望の方(転職希望の方)
■ その他、ご相談やご連絡を取りたい方は
画面上部の「オ-ナ-へメッセ-ジ」よりご連絡を下さい。
変換関数(CONVERT)の
datetime型または、smalldatetime型の
データ変換についての
説明を行っていきたいと思います。
① 『CONVERT』
データ型を変換する関数です。
書式としましては以下の様になります。
≪SQL SERVER≫
【書式】
CONVERT(date_type,expression[,style])
【引数】
date_type :変換するデータ型
expression:データ
style :変換する方法を指定する整数式
【戻り値】
変換したデータ型の値
● styleに指定できる値
No | 世紀無(yy) | 世紀有(yyyy) | 標準 | 入力/出力(※1) |
1 | - | 0 または 100(※2) | 既定値 | mon dd yyyy hh:miAM(またはPM) |
2 | 1 | 101 | アメリカ | mm/dd/yyyy |
3 | 2 | 102 | ANSI | yy.mm.dd |
4 | 3 | 103 | イギリス/フランス | dd/mm/yy |
5 | 4 | 104 | ドイツ | dd.mm.yy |
6 | 5 | 105 | イタリア | dd-mm-yy |
7 | 6 | 106 | - | dd mon yy |
8 | 7 | 107 | - | Mon dd, yy |
9 | 8 | 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の様に、
『システム日付(現日付)』に対して
各書式にて変換が掛けられた値が求められたのが分かります。
今回は、基本的な使用方法を説明しましたが、
色々な使い方がありますので是非、使用して試してみてください。
次回も引き続き、
『変換関数』の説明を行います。
ブログランキングに参加しています。
---------------------------------------------------------------------------------------------------------------
■ 弊社の事をお知りになりたい方
■ 弊社へ入社希望の方(転職希望の方)
■ その他、ご相談やご連絡を取りたい方は
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』の値が
ゼロに置き換わったのが分かります。
今回は、基本的な使用方法を説明しましたが、
色々な使い方がありますので是非、使用して試してみてください。
次回も引き続き、
『変換関数』の説明を行います。
ブログランキングに参加しています。
---------------------------------------------------------------------------------------------------------------
■ 弊社の事をお知りになりたい方
■ 弊社へ入社希望の方(転職希望の方)
■ その他、ご相談やご連絡を取りたい方は