经常看到有人问关于时间格式的问题,例如从数据库中得到的时间格式不正确符合您的心意。由于中英操作系统、数据库版本等差别,确实有这个问题。有的人喜欢在数据从数据库取出以后再定义类型,我觉得这样做没有把握住源头,所以我想说一下自己的想法。
其实也很简单,在sql帮助中
without century (yy) | with century (yyyy) | standard | input/output** |
---|---|---|---|
– | 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 “);等结构来实现。