|
SQLServer Convert関数で DateTime 型を文字型データに変換する
|
|
CONVERT ( data_type [ ( length ) ] , expression [ , style ] ) |
Convert のパラメータ [ style ] の部分には、下表の数値が入ります。 |
世紀 なし (yy) |
世紀 あり (yyyy) |
標準 |
入力/出力** |
|
0 または 100 (*) |
既定値 |
mon dd yyyy hh:miAM (または PM) |
1 |
101 |
USA |
mm/dd/yy |
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 yyyy hh:mi:ss:mmmAM (または PM) |
10 |
110 |
USA |
mm-dd-yy |
11 |
111 |
日本 |
yy/mm/dd |
12 |
112 |
ISO |
yymmdd |
|
13 または 113 (*) |
ヨーロッパの既定値 + ミリ秒 |
dd mon yyyy hh:mm:ss:mmm (24 時間制) |
14 |
114 |
|
hh:mi:ss:mmm(24 時間制) |
|
20 または 120 (*) |
ODBC 標準 |
yyyy-mm-dd hh:mi:ss(24 時間制) |
|
21 または 121 (*) |
ODBC 標準 (ミリ秒を含む) |
yyyy-mm-dd hh:mi:ss.mmm(24 時間制) |
|
126(***) |
ISO8601 |
yyyy-mm-dd Thh:mm:ss:mmm(スペースなし) |
|
130* |
クウェート |
dd mon yyyy hh:mi:ss:mmmAM |
|
131* |
クウェート |
dd/mm/yy hh:mi:ss:mmmAM |
|
上表に実際の日付より、返ってくる値を調べてみました。 |
Convert(Varchar(30), Convert(DateTime, '2007/12/31 12:34:56'), [ style ]) にパラメータを渡したのが下表です。 |
世紀 なし (yy) |
戻り値 |
世紀 あり (yyyy) |
戻り値 |
|
|
100 |
12 31 2007 12:34PM |
1 |
12/31/07 |
101 |
12/31/2007 |
2 |
07.12.31 |
102 |
2007.12.31 |
3 |
31/12/07 |
103 |
31/12/2007 |
4 |
31.12.07 |
104 |
31.12.2007 |
5 |
31-12-07 |
105 |
31-12-2007 |
6 |
31 12 07 |
106 |
31 12 2007 |
7 |
12 31, 07 |
107 |
12 31, 2007 |
8 |
12:34:56 |
108 |
12:34:56 |
|
|
109 |
12 31 2007 12:34:56:000PM |
10 |
12-31-07 |
110 |
12-31-2007 |
11 |
07/12/31 |
111 |
2007/12/31 |
12 |
071231 |
112 |
20071231 |
|
|
113 |
31 12 2007 12:34:56:000 |
14 |
12:34:56:000 |
114 |
12:34:56:000 |
|
|
120 |
2007-12-31 12:34:56 |
|
|
121 |
2007-12-31 12:34:56.000 |
|
|
126 |
2007-12-31T12:34:56 |
|
|
130 |
22 ?? ????? 1428 12:34:56:000P |
|
|
131 |
22/12/1428 12:34:56:000PM |
|
130 クウェート、131 クウェートはイスラム暦です。 使うことはないかと思いますが、130 クウェートにいたっては、正常な値が取得できません。 |
|