1.日期格式转换
SQL Server中文版的默认的日期字段datetime格式是yyyy-mm-dd Thh:mm:ss.mmm
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
|
2.求时间差
datediff(day,时间1,时间2) 若1小于2 结果为正,否则为负
SELECT (DATEDIFF (day, getdate(),cast(startime as datetime)))>2 FROM tasktb
3.格式转换方法
SELECT convert(char,youdatefield,120) as date2 FROM table
mssql默认以系统时间格式输出,你可以调整系统的时间格式来解决
当然是在程序里解决比较灵活,convert(char,date,N)输出的各中样式
N 日期样式
0 04 2 2005 9:06AM
1 04/02/05
2 05.04.02
3 02/04/05
4 02.04.05
5 02-04-05
6 02 04 05
7 04 02, 05
8 09:06:18
9 04 2 2005 9:06:18:857AM
10 04-02-05
11 05/04/02
12 050402
13 02 04 2005 09:06:18:857
14 09:06:18:857
20 2005-04-02 09:06:18
21 2005-04-02 09:06:18.857
22 04/02/05 9:06:18 AM
23 2005-04-02
24 09:06:18
25 2005-04-02 09:06:18.857
100 04 2 2005 9:06AM
101 04/02/2005
102 2005.04.02
103 02/04/2005
104 02.04.2005
105 02-04-2005
106 02 04 2005
107 04 02, 2005
108 09:06:18
109 04 2 2005 9:06:18:857AM
110 04-02-2005
111 2005/04/02
112 20050402
113 02 04 2005 09:06:18:857
114 09:06:18:857
120 2005-04-02 09:06:18
121 2005-04-02 09:06:18.857
126 2005-04-02T09:06:18.857