从数据库中得到合适的时间格式
经常看到有人问关于时间格式的问题,例如从数据库中得到的时间格式不正确符合您的心意。由于中英操作系统、数据库版本等差别,确实有这个问题。有的人喜欢在数据从数据库取出以后再定义类型,我觉得这样做没有把握住源头,所以我想说一下自己的想法。
其实也很简单,在SQL帮助中
Without century (yy) |
With century (yyyy) |
|
|
- |
0 or 100 (*) |
Default |
mon dd yyyy hh:miAM (or PM) |
1 |
101 |
USA |
mm/dd/yy |
2 |
102 |
ANSI |
yy.mm.dd |
3 |
103 |
British/French |
dd/mm/yy |
4 |
104 |
German |
dd.mm.yy |
5 |
105 |
Italian |
dd-mm-yy |
6 |
106 |
- |
dd mon yy |
7 |
107 |
- |
Mon dd, yy |
8 |
108 |
- |
hh:mm:ss |
- |
9 or 109 (*) |
Default + milliseconds |
mon dd yyyy hh:mi:ss:mmmAM (or PM) |
10 |
110 |
USA |
mm-dd-yy |
11 |
111 |
JAPAN |
yy/mm/dd |
12 |
112 |
ISO |
yymmdd |
- |
13 or 113 (*) |
Europe default + milliseconds |
dd mon yyyy hh:mm:ss:mmm(24h) |
14 |
114 |
- |
hh:mi:ss:mmm(24h) |
- |
20 or 120 (*) |
ODBC canonical |
yyyy-mm-dd hh:mi:ss(24h) |
- |
21 or 121 (*) |
ODBC canonical (with milliseconds) |
yyyy-mm-dd hh:mi:ss.mmm(24h) |
- |
126(***) |
ISO8601 |
yyyy-mm-dd Thh:mm:ss:mmm(no spaces) |
- |
130* |
Kuwaiti |
dd mon yyyy hh:mi:ss:mmmAM |
- |
131* |
Kuwaiti |
dd/mm/yy hh:mi:ss:mmmAM |
这样你如果想在中文系统下实现英文的时间格式,就在存储过程中可以使用
select date1=Convert(char(10),date1,101) 就是将date1转换成mm/dd/yy的格式.
还是很方便吧。当然取出后的数据,或者单独的数据也可以通过.String("yyyy-mm-dd ");等结构来实现。
经常看到有人问关于时间格式的问题,例如从数据库中得到的时间格式不正确符合您的心意。由于中英操作系统、数据库版本等差别,确实有这个问题。有的人喜欢在数据从数据库取出以后再定义类型,我觉得这样做没有把握住源头,所以我想说一下自己的想法。
其实也很简单,在SQL帮助中
Without century (yy) |
With century (yyyy) |
|
|
- |
0 or 100 (*) |
Default |
mon dd yyyy hh:miAM (or PM) |
1 |
101 |
USA |
mm/dd/yy |
2 |
102 |
ANSI |
yy.mm.dd |
3 |
103 |
British/French |
dd/mm/yy |
4 |
104 |
German |
dd.mm.yy |
5 |
105 |
Italian |
dd-mm-yy |
6 |
106 |
- |
dd mon yy |
7 |
107 |
- |
Mon dd, yy |
8 |
108 |
- |
hh:mm:ss |
- |
9 or 109 (*) |
Default + milliseconds |
mon dd yyyy hh:mi:ss:mmmAM (or PM) |
10 |
110 |
USA |
mm-dd-yy |
11 |
111 |
JAPAN |
yy/mm/dd |
12 |
112 |
ISO |
yymmdd |
- |
13 or 113 (*) |
Europe default + milliseconds |
dd mon yyyy hh:mm:ss:mmm(24h) |
14 |
114 |
- |
hh:mi:ss:mmm(24h) |
- |
20 or 120 (*) |
ODBC canonical |
yyyy-mm-dd hh:mi:ss(24h) |
- |
21 or 121 (*) |
ODBC canonical (with milliseconds) |
yyyy-mm-dd hh:mi:ss.mmm(24h) |
- |
126(***) |
ISO8601 |
yyyy-mm-dd Thh:mm:ss:mmm(no spaces) |
- |
130* |
Kuwaiti |
dd mon yyyy hh:mi:ss:mmmAM |
- |
131* |
Kuwaiti |
dd/mm/yy hh:mi:ss:mmmAM |
这样你如果想在中文系统下实现英文的时间格式,就在存储过程中可以使用
select date1=Convert(char(10),date1,101) 就是将date1转换成mm/dd/yy的格式.
还是很方便吧。当然取出后的数据,或者单独的数据也可以通过.String("yyyy-mm-dd ");等结构来实现。