www.9778.com:SQLserver中用convert函数转换日期格式

sql server中文版的默认的日期字段datetime格式是yyyy-mm-dd
thh:mm:ss.mmm例如:select getdate()2004-09-12 11:06:08.177整理了一下sql
server里面可能经常会用到的日期格式转换方法:举例如下:select
convert(varchar, getdate(), 120 )2004-09-12 11:06:08select
convert(varchar(100), getdate(), 0): 05 16 2006 10:57amselect
convert(varchar(100), getdate(), 1): 05/16/06select
convert(varchar(100), getdate(), 2): 06.05.16select
convert(varchar(100), getdate(), 3): 16/05/06select
convert(varchar(100), getdate(), 4): 16.05.06select
convert(varchar(100), getdate(), 5): 16-05-06select
convert(varchar(100), getdate(), 6): 16 05 06select
convert(varchar(100), getdate(), 7): 05 16, 06select
convert(varchar(100), getdate(), 8): 10:57:46select
convert(varchar(100), getdate(), 9): 05 16 2006 10:57:46:827amselect
convert(varchar(100), getdate(), 10): 05-16-06select
convert(varchar(100), getdate(), 11): 06/05/16select
convert(varchar(100), getdate(), 12): 060516select convert(varchar(100),
getdate(), 13): 16 05 2006 10:57:46:937select convert(varchar(100),
getdate(), 14): 10:57:46:967select convert(varchar(100), getdate(), 20):
2006-05-16 10:57:47select convert(varchar(100), getdate(), 21):
2006-05-16 10:57:47.157select convert(varchar(100), getdate(), 22):
05/16/06 10:57:47 amselect convert(varchar(100), getdate(), 23):
2006-05-16select convert(varchar(100), getdate(), 24): 10:57:47select
convert(varchar(100), getdate(), 25): 2006-05-16 10:57:47.250select
convert(varchar(100), getdate(), 100): 05 16 2006 10:57amselect
convert(varchar(100), getdate(), 101): 05/16/2006select
convert(varchar(100), getdate(), 102): 2006.05.16select
convert(varchar(100), getdate(), 103): 16/05/2006select
convert(varchar(100), getdate(), 104): 16.05.2006select
convert(varchar(100), getdate(), 105): 16-05-2006select
convert(varchar(100), getdate(), 106): 16 05 2006select
convert(varchar(100), getdate(), 107): 05 16, 2006select
convert(varchar(100), getdate(), 108): 10:57:49select
convert(varchar(100), getdate(), 109): 05 16 2006 10:57:49:437amselect
convert(varchar(100), getdate(), 110): 05-16-2006select
convert(varchar(100), getdate(), 111): 2006/05/16select
convert(varchar(100), getdate(), 112): 20060516select
convert(varchar(100), getdate(), 113): 16 05 2006 10:57:49:513select
convert(varchar(100), getdate(), 114): 10:57:49:547select
convert(varchar(100), getdate(), 120): 2006-05-16 10:57:49select
convert(varchar(100), getdate(), 121): 2006-05-16 10:57:49.700select
convert(varchar(100), getdate(), 126): 2006-05-16t10:57:49.827select
convert(varchar(100), getdate(), 130): 18 ???? ?????? 1427
10:57:49:907amselect convert(varchar(100), getdate(), 131): 18/04/1427
10:57:49:920am

SQLserver中用convert函数转换日期格式2008-01-15
15:51SQLserver中用convert函数转换日期格式

方法二

SQL Server中文版的默认的日期字段datetime格式是yyyy-mm-dd Thh:mm:ss.mmm

在c#中用惯了datetime.tostring(yyyy-mm-dd),datetime.tostring(mm/dd/yyyy)这种日期与字符串的转换方式,在sql
server中没得用,于是乎写了个function,功能跟.net
中的datetime.tostring(formatprovide)方法差不多,不过只实现了日期部分,有兴趣的朋友可以把时间部分补充出来。

例如:

create function fn_datetostring(@date datetime, @format varchar(20))

select getdate()

returns varchar(20)

2004-09-12 11:06:08.177

as

整理了一下SQL Server里面可能经常会用到的日期格式转换方法:

begin

举例如下:

declare @result varchar(20)

select CONVERT(varchar, getdate(), 120 )

select @result =
(replace(replace(replace(@format,’yyyy’,’20’+substring(convert(char(8),@date,3),7,2)),’mm’,substring(convert(char(8),@date,3),4,2)),’dd’,substring(convert(char(8),@date,3),1,2)))

2004-09-12 11:06:08

return @result

select replace(replace(replace(CONVERT(varchar, getdate(), 120
),’-‘,”),’ ‘,”),’:’,”)

end

www.9778.com:SQLserver中用convert函数转换日期格式。20040912110608

使用:

select CONVERT(varchar(12) , getdate(), 111 )

select dbo.fn_datetostring(getdate(),’yyyy-mm-dd’)

2004/09/12

select CONVERT(varchar(12) , getdate(), 112 )

20040912

select CONVERT(varchar(12) , getdate(), 102 )

2004.09.12

select CONVERT(varchar(12) , getdate(), 101 )

09/12/2004

www.9778.com,select CONVERT(varchar(12) , getdate(), 103 )

12/09/2004

select CONVERT(varchar(12) , getdate(), 104 )

12.09.2004

select CONVERT(varchar(12) , getdate(), 105 )

12-09-2004

select CONVERT(varchar(12) , getdate(), 106 )

12 09 2004

select CONVERT(varchar(12) , getdate(), 107 )

09 12, 2004

select CONVERT(varchar(12) , getdate(), 108 )

11:06:08

select CONVERT(varchar(12) , getdate(), 109 )

09 12 2004 1

select CONVERT(varchar(12) , getdate(), 110 )

09-12-2004

select CONVERT(varchar(12) , getdate(), 113 )

12 09 2004 1

select CONVERT(varchar(12) , getdate(), 114 )

11:06:08.177

select getdate()

结果:2003-12-28 16:52:00.107

select convert(char(8),getdate(),112)

结果:20031228

select convert(char(8),getdate(),108)

结果:16:52:00

select convert(char(8),getdate(),112)

                                   |

                             指日期格式

规则如下:

1 101 美国 mm/dd/yyyy

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 美国 mm-dd-yy

11 111 日本 yy/mm/dd

12 112 ISO yymmdd

– 13 或 113 (*)   欧洲默认值 + 毫秒 dd mon yyyy hh:mm:ss:mmm(24h)

14 114 – hh:mi:ss:mmm(24h)

– 20 或 120 (*)   ODBC 规范 yyyy-mm-dd hh:mm:ss[.fff]

– 21 或 121 (*)   ODBC 规范(带毫秒) yyyy-mm-dd hh:mm:ss[.fff]

– 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

         
关于Emaker中字段的格式转换和字段间的运算代码可以加到属性里的“格式转换(读出)”和“格式转换(写入)”,table字段设定里的“字段”位置也可以灵活加函数。比如:’AF’+ID
或者ID+’/’+PWD ,convert(varchar(50),F1) ,

convert(int,%)-19110000 (读出)

convert(char(8),convert(int,%)+19110000) (写入)

实现行的合计运算等等。加入:%系统变量%,则是调用在Emaker
系统中设定的系统变量。

转自: