Sql日付の時間フォーマットの変換を共有します。


Sql server 2000ではconvertを使用してdatetimeデータタイプパターン(全)を取得します。
日付データフォーマットの処理は、2つの例があります。
CONVERT(varrrcer(16)、時間一、20)の結果:2007-02-01 08:02/*時間は一般的にgetsdate()関数またはデータテーブルのフィールド*/
CONVERRT(varrhar(10)、時間一、23)の結果:2007-02-01/*varrhar(10)は日付出力のフォーマットを示しています。長さが足りないと切り取りが発生します。
ステートメントおよびクエリの結果:

Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06
Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16
Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06
Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06
Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06
Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06
Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 06
Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46
Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM
Select CONVERT(varchar(100), GETDATE(), 10): 05-16-06
Select CONVERT(varchar(100), GETDATE(), 11): 06/05/16
Select CONVERT(varchar(100), GETDATE(), 12): 060516
Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937
Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967
Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47
Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157
Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM
Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16
Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47
Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250
Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 101): 05/16/2006
Select CONVERT(varchar(100), GETDATE(), 102): 2006.05.16
Select CONVERT(varchar(100), GETDATE(), 103): 16/05/2006
Select CONVERT(varchar(100), GETDATE(), 104): 16.05.2006
Select CONVERT(varchar(100), GETDATE(), 105): 16-05-2006
Select CONVERT(varchar(100), GETDATE(), 106): 16 05 2006
Select CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006
Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49
Select CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM
Select CONVERT(varchar(100), GETDATE(), 110): 05-16-2006
Select CONVERT(varchar(100), GETDATE(), 111): 2006/05/16
Select CONVERT(varchar(100), GETDATE(), 112): 20060516
Select CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513
Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547
Select CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49
Select CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.700
Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.827
Select CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? 1427 10:57:49:907AM
Select CONVERT(varchar(100), GETDATE(), 131): 18/04/1427 10:57:49:920AM
説明:CONVERTを使用する:
CONVERTtype[(length)],expression[,style]
パラメータexpression
任意の効果的なMicrosoftです。® SQL Server™ 表式
data_タイプ
ターゲットシステムが提供するデータの種類は、ビギナートとsql_を含む。variantユーザー定義のデータタイプは使用できません。length
nchar、nvarrhar、char、varhar、binaryまたはvarbinaryデータタイプのオプションパラメータです。
スタイル
日付フォーマット様式は、datetimeまたはsmaldatemデータを文字データに変換する(nchar、nvarhar、char、varhar、nchar、またはnvarharデータタイプ)。または文字列様式様式様式で、float、real、moneyまたはsmalmoneyデータを文字データ(nchar、nvarhar、char、varhar、ncharまたはnvarharデータタイプ)に変換する。
SQL Serverは、クウェートのアルゴリズムを使用したアラブスタイルのデータフォーマットをサポートします。
表において、左側の二列は、datetimeまたはsmaldatemを文字データのstyle値に変換することを表しています。styleの値に100を加えると、世紀の数を含む4桁の年(yyy)が得られます。
世紀数位(yy)帯世紀数位(yyy)標準入力/出力*-0または100(*)デフォルト値mon dd yyyy hh:miAM(またはPM)1 101米国mm/dd/yy 2 102 ANSI yy.mm.dd 3 103イギリス/フランスdd/mm/yy 4 104ドイツdd.mmyイタリアmmy 105yy 8 8 8 8-hh:mm:ss-9または109(*)デフォルト値+ミリ秒mon dd yyyhh:miss:ss:mmmAM(またはPM)10 110米国mm-dd-yy 11 111日本yy/mm/dd 12 112 ISO ymmdd-13または113(*)ヨーロッパのデフォルト値+mdd monyyyymmy(hhhhhhhy)(24 mm)ヨーロッパの標準値+mmmmyyyyyyyyyyyyyyyyyyyyyyyyyhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh(12 12 12 12 12 12 12 12:24 m:24:ヨーロッパのデフォルト値[.fff]-21または121(*)ODBC仕様(ベルトミリ秒)yy yy-mm-dd hh:mm:ss[.fff]-126(*)ISO 8601 yyy-mm-dd Thh:mm:ss.mmm(空欄を含まない)-130*Hijri****dd monyyhh:mi:mm:mmmAM-131*Hijri*mm/mm
*デフォルト値(style 0または100、9または109、13または113、20または120、21または121)は常に世紀の数位(yyy)に戻ります。datetimeに変換すると入力します。文字データに変換すると出力します。***XML専用です。datetimeまたはsmaldatemからcharacterデータへの変換については、表に示すように出力フォーマットが表示されます。float、moneyまたはsmalmoneyからcharacterデータへの変換に対して、出力はstyle 2と同じです。realからcharacterデータへの変換については、style 1と同等です。***Hijriはいくつかの変化の形を持つカレンダーシステムで、Microsoft® SQL Server™ 2000はその中のクウェートアルゴリズムを使用する。
重要な黙認の場合、SQL Serverは、締切年2049に基づいて、2桁の年を解釈します。すなわち、2桁の数字の年49は2049と解釈され、2桁の年50は1950と解釈される。多くのクライアント・アプリケーション(例えば、OLED自動化オブジェクトに基づくクライアント・アプリケーション)は、締切年として2030を使用している。SQL ServerはSQL Serverが使用している締切年を変更して日付を一致させる設定オプションを提供します。しかし、一番安全な方法は4桁の数字の年を指定することです。
smaldetimeから文字データに変換すると、秒またはミリ秒を含むスタイルはこれらの位置にゼロが表示されます。datetimeまたはsmaldateime値から変換すると、不要な日付部分は適切なcharまたはvarharデータタイプ長を使用して切り捨てられます。