SQL SERVER日付フォーマット変換


SQL SERVER 2000がsql文で現在のシステム時間をどのように獲得するかはGETDATE()である.
SqlのgetDate()2008年01月08日火曜日14:59 Sql Serverの非常に強力な日付フォーマット関数
Select CONVERT(varchar(100), GETDATE(), 0);-- 05 16 2008 10:57AM
Select CONVERT(varchar(100), GETDATE(), 1);-- 05/16/08
Select CONVERT(varchar(100), GETDATE(), 2);-- 08.05.16
Select CONVERT(varchar(100), GETDATE(), 3);-- 16/05/08
Select CONVERT(varchar(100), GETDATE(), 4);-- 16.05.08
Select CONVERT(varchar(100), GETDATE(), 5);-- 16-05-08
Select CONVERT(varchar(100), GETDATE(), 6);-- 16 05 08
Select CONVERT(varchar(100), GETDATE(), 7);-- 05 16, 08
Select CONVERT(varchar(100), GETDATE(), 8);-- 10:57:46
Select CONVERT(varchar(100), GETDATE(), 9);-- 05 16 2008 10:57:46:827AM
Select CONVERT(varchar(100), GETDATE(), 10);-- 05-16-08
Select CONVERT(varchar(100), GETDATE(), 11);-- 08/05/16
Select CONVERT(varchar(100), GETDATE(), 12);-- 080516
Select CONVERT(varchar(100), GETDATE(), 13);-- 16 05 2008 10:57:46:937
Select CONVERT(varchar(100), GETDATE(), 14);-- 10:57:46:967
Select CONVERT(varchar(100), GETDATE(), 20);-- 2008-05-16 10:57:47
Select CONVERT(varchar(100), GETDATE(), 21);-- 2008-05-16 10:57:47.157
Select CONVERT(varchar(100), GETDATE(), 22);-- 05/16/08 10:57:47 AM
Select CONVERT(varchar(100), GETDATE(), 23);-- 2008-05-16
Select CONVERT(varchar(100), GETDATE(), 24);-- 10:57:47
Select CONVERT(varchar(100), GETDATE(), 25);-- 2008-05-16 10:57:47.250
Select CONVERT(varchar(100), GETDATE(), 100);-- 05 16 2008 10:57AM
Select CONVERT(varchar(100), GETDATE(), 101);-- 05/16/2008
Select CONVERT(varchar(100), GETDATE(), 102);-- 2008.05.16
Select CONVERT(varchar(100), GETDATE(), 103);-- 16/05/2008
Select CONVERT(varchar(100), GETDATE(), 104);-- 16.05.2008
Select CONVERT(varchar(100), GETDATE(), 105);-- 16-05-2008
Select CONVERT(varchar(100), GETDATE(), 106);-- 16 05 2008
Select CONVERT(varchar(100), GETDATE(), 107);-- 05 16, 2008
Select CONVERT(varchar(100), GETDATE(), 108);-- 10:57:49
Select CONVERT(varchar(100), GETDATE(), 109);-- 05 16 2008 10:57:49:437AM
Select CONVERT(varchar(100), GETDATE(), 110);-- 05-16-2008
Select CONVERT(varchar(100), GETDATE(), 111);-- 2008/05/16
Select CONVERT(varchar(100), GETDATE(), 112);-- 20080516
Select CONVERT(varchar(100), GETDATE(), 113);-- 16 05 2008 10:57:49:513
Select CONVERT(varchar(100), GETDATE(), 114);-- 10:57:49:547
Select CONVERT(varchar(100), GETDATE(), 120);-- 2008-05-16 10:57:49
Select CONVERT(varchar(100), GETDATE(), 121);-- 2008-05-16 10:57:49.700
Select CONVERT(varchar(100), GETDATE(), 126);-- 2008-05-16T10:57:49.827
Select CONVERT(varchar(100), GETDATE(), 130);-- 18 ???? ?????? 1427 10:57:49:907AM

説明:
CONVERTの使用:
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
パラメータ
expression
有効なMicrosoftです® SQL Server™ 式. 
data_type
ターゲットシステムが提供するデータ型(bigintとsql_を含む)variant.ユーザー定義のデータ型は使用できません.
length
nchar、nvarchar、char、varchar、binary、またはvarbinaryデータ型のオプションパラメータ. 
style
日付フォーマットスタイルで、datetimeまたはsmalldatetimeデータを文字データ(nchar、nvarchar、char、varchar、nchar、またはnvarcharデータ型)に変換します.または、float、real、money、またはsmallmoneyデータを文字データ(nchar、nvarchar、char、varchar、nchar、またはnvarcharデータ型)に変換する文字列フォーマットスタイルです.
SQL Serverは、クウェートアルゴリズムを使用したアラビアスタイルのデータフォーマットをサポートします.
表の左側の2つの列は、datetimeまたはsmalldatetimeを文字データに変換するstyle値を表します.style値に100を加えると、世紀数位を含む4桁の年(yyyy)が得られます.
世紀数位(yy)帯世紀数位(yyyy)を持たない
標準
入力/出力**
-0または100(*)デフォルトmon ddyyyyyyyy hh:miAM(またはPM)
1 101アメリカmm/dd/yyyy
2 102 ANSI yy.mm.dd 
3 103イギリス/フランスdd/mm/yy
4 104ドイツdd.mm.yy 
5 105イタリアdd-mm-yy
6 106 - dd mon yy 
7 107 - mon dd, yy 
8 108 - hh:mm:ss 
-9または109(*)デフォルト+ミリ秒mon dd yyyyyyy hh:mi:ss:mmmAM(またはPM)
10 110アメリカmm-dd-yy
11 111日本yy/mm/dd
12 112 ISO yymmdd 
-13または113(*)ヨーロッパデフォルト+ミリ秒dd monyyyyyy hh:mm:ss:mmm(24 h)
14 114 - hh:mi:ss:mmm(24h) 
-20または120(*)ODBC仕様yyy-mm-dd hh:mm:ss[.fff]
-21または121(*)ODBC仕様(ミリ秒付き)yyy-mm-dd hh:mm:ss[.fff]
- 126(***) ISO8601 yyyy-mm-dd Thh:mm:ss.mmm(スペースなし)
- 130* Hijri**** dd mon yyyy hh:mi:ss:mmmAM 
- 131* Hijri**** dd/mm/yy hh:mi:ss:mmmAM 
*デフォルト値(style 0または100、9または109、13または113、20または120、21または121)は、常に世紀数ビット(yyyy)を返します.
**datetimeに変換するときに入力します.文字データに変換すると出力されます.
***XML専用.datetimeまたはsmalldatetimeからcharacterデータへの変換について、出力フォーマットを表に示します.float、moneyまたはsmallmoneyからcharacterデータへの変換では、出力はstyle 2に等しい.realからcharacterデータへの変換では、出力はstyle 1に等しい.
****Hijriはいくつかのバリエーションを持つカレンダーシステム、Microsoft® SQL Server™ 2000はクウェートアルゴリズムを使用します.
重要なデフォルトでは、SQL Serverは、締め切り年2049に基づいて2桁の年を説明します.すなわち、2桁の年49は2049と解釈され、2桁の年50は1950と解釈される.OLE自動化オブジェクトベースのクライアントアプリケーションなど、多くのクライアントアプリケーションは、終了年として2030を使用します.SQL Serverでは、SQL Serverが使用する締め切り年を変更し、日付を一貫性のある処理を行うための構成オプション(「2桁の締め切り年」)が用意されています.しかし、最も安全な方法は4桁の数字の年を指定することです.
smalldatetimeから文字データに変換すると、秒またはミリ秒を含むスタイルがこれらの位置にゼロを表示します.datetimeまたはsmalldatetime値から変換する場合は、適切なcharまたはvarcharデータ型の長さを使用して不要な日付部分を遮断できます.
Select CONVERT(varchar(100), GETDATE(), 131): 18/04/1427 10:57:49:920AM