1. 怎样将datetime类型的日期转换为yyyy-mm-dd格式
SELECT STR_REPLACE(CONVERT(VARCHAR, GETDATE(), 111) ,'/','-');
2. DateTime转换成Varchar样式
语句及查询结果: Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06 Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16 Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06 Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06 Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06 Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06 Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 06 Select CONVERT(varchar(100), GETDATE(),8 : 10:57:46 Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM Select CONVERT(varchar(100), GETDATE(), 10): 05-16-06 Select CONVERT(varchar(100), GETDATE(), 11): 06/05/16 Select CONVERT(varchar(100), GETDATE(), 12): 060516 Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937 Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967 Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47 Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157 Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16 Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47 Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250 Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM Select CONVERT(varchar(100), GETDATE(), 101): 05/16/2006 Select CONVERT(varchar(100), GETDATE(), 102): 2006.05.16 Select CONVERT(varchar(100), GETDATE(), 103): 16/05/2006 Select CONVERT(varchar(100), GETDATE(), 104): 16.05.2006 Select CONVERT(varchar(100), GETDATE(), 105): 16-05-2006 Select CONVERT(varchar(100), GETDATE(), 106): 16 05 2006 Select CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006 Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49 Select CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM Select CONVERT(varchar(100), GETDATE(), 110): 05-16-2006 Select CONVERT(varchar(100), GETDATE(), 111): 2006/05/16 Select CONVERT(varchar(100), GETDATE(), 112): 20060516 Select CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513
3. Sybase中convert函数中第三个参数的格式
sybase下convert函数第三个参数(时间格式) 比如: 1.select user_id,convert(varchar(10),dayts,11) as dates from tb_user (sybase下及sql server下语句) 2.select to_char(sysdate,'yy/mm/dd') as d from dual (oracle下语句) 转换格式: 0或100 month dd yyyy hh:miampm 1 mm/dd/yy 2 yy.mm.dd 3 dd/mm/yy 4 dd.mm.yy 5 dd-mm-yy 6 dd month yy 7 month dd,yy 8 hh:mi:ss 9或109 month dd yyyy hh:mi:ss:mmmampm 10 mm-dd-yy 11 yy/mm/dd 12 yymmdd 还有100、101、102...和上面的对应,只不过将yy变为yyyy. 101 mm/dd/yyyy 102 yyyy.mm.dd 103 dd/mm/yyyy 104 dd.mm.yyyy 105 dd-mm-yyyy 106 dd month yyyy 107 month dd,yyyy 108 hh:mi:ss 110 mm-dd-yyyy 111 yyyy/mm/dd 112 yyyymmdd 也可以把几种格式合在一起: select rtrim(convert(char,getdate(),111))+''+(convert(char,getdate(),108)) -- yyyy/mm/dd hh:mi:ss convert(varchar(10),字段名,转换格式) cast(cad.id as varchar) //把cad表的id字段转换为varchar字段,其中id字段为整型 比如: select user_id,convert(varchar(10),date,11) as date from tb_user dateadd(日期部分,数值表达式,日期) select dateadd(dd,10,time) from testDate //以日子计算,在当前time时间加10天 转换格式: 0或100 month dd yyyy hh:miampm 1 mm/dd/yy 2 yy.mm.dd 3 dd/mm/yy 4 dd.mm.yy 5 dd-mm-yy 6 dd month yy 7 month dd,yy 8 hh:mi:ss 9或109 month dd yyyy hh:mi:ss:mmmampm 10 mm-dd-yy 11 yy/mm/dd 12 yymmdd 101 mm/dd/yyyy 102 yyyy.mm.dd 103 dd/mm/yyyy 104 dd.mm.yyyy 105 dd-mm-yyyy 106 dd month yyyy 107 month dd,yyyy 108 hh:mi:ss 110 mm-dd-yyyy 111 yyyy/mm/dd 112 yyyymmd Sybase时间日期函数 2010年05月09日 星期三 下午 06:54 Sybase日期函数 -------------------------------------------------------------------------------- 日期函数 getdate() 得到当前时间,可以设置得到各种时间格式. datepart(日期部分,日期) 取指定时间的某一个部分,年月天时分秒. datediff(日期部分,日期1,日期2) 计算指定的日期1和日期2的时间差多少. dateadd(日期部分,数值表达式,日期) 计算指定时间,再加上表达式指定的时间长度. --取时间的某一个部分 select datepart(yy,getdate()) --year select datepart(mm,getdate()) --month select datepart(dd,getdate()) --day select datepart(hh,getdate()) --hour select datepart(mi,getdate()) --min select datepart(ss,getdate()) --sec --取星期几 set datefirst 1 select datepart(weekday,getdate()) --weekday --字符串时间 select getdate() -- '10/11/12' select convert(char,getdate(),101) -- '09/27/2010' select convert(char,getdate(),102) -- '2010.11.12' select convert(char,getdate(),103) -- '27/09/2010' select convert(char,getdate(),104) -- '27.09.2010' select convert(char,getdate(),105) -- '27-09-2010' select convert(char,getdate(),106) -- '27 Sep 2010' select convert(char,getdate(),107) --'Sep 27, 2010' select convert(char,getdate(),108) --'11:16:06' select convert(char,getdate(),109) --'Sep 27 2010 11:16:28:746AM' select convert(char,getdate(),110) --'09-27-2010' select convert(char,getdate(),111) --'2010/09/27' select convert(char,getdate(),112) --'20100927' select rtrim(convert(char,getdate(),102))+' '+(convert(char,getdate(),108)) -- '2010.11.12 11:03:41' 在sybase数据库中,假设表A的时间段时间为2005-8-19 4:20, 但是在用select语句搜出后结果为“Aug 19 2005 4:20:04 ” 请问怎么才能转换成2005-8-9 4:20这种格式呢。 2BeSybPro如何得出自己需要的时间格式 select substring(convert(char(8),getdate(),112),1,4)+'-'+substring(convert(char(8),getdate(),112),5,2)+'-'+substring(convert(char(8),getdate(),112),7,2)+''+convert(char(5),getdate(),108) select substring(convert(char(8),getdate(),112),1,4)+'-'+substring(convert(char(8),getdate(),112),5,2)+'-'+substring(convert(char(8),getdate(),112),7,2)+''+convert(char(8),getdate(),108) --整数时间 select convert(int,convert(char(10),getdate(),112)) -- 20031112 select datepart(hh,getdate())*10000 + datepart(mi,getdate())*100 + datepart(ss,getdate()) -- 110646 --时间格式 "YYYY.MM.DD HH:MI:SS" 转换为 "YYYYMMDDHHMISS" declare @a datetime,@tmp varchar(20),@tmp1 varchar(20) select @a=convert(datetime,'2004.08.03 12:12:12') select @tmp=convert(char(10),@a,112) select @tmp select @tmp1=convert(char(10),datepart(hh,@a)*10000 + datepart(mi,@a)*100 + datepart(ss,@a)) select @tmp1 select @tmp=@tmp+@tmp1 select @tmp --当月最后一天 declare @tmpstr varchar(10) @mm int, @premm int, @curmmlastday varchar(10) begin select @mm=datepart(month,getdate())--当月 select @premm=datepart(month,dateadd(month,-1,getdate())) --上个月 if (@mm>=1 and @mm<=8) select @tmpstr=convert(char(4),datepart(year,getdate()))+'.0'+convert(char(1),datepart(month,dateadd(month,1,getdate())))+'.'+'01' else if (@mm>=9 and @mm<=11) select @tmpstr=convert(char(4),datepart(year,getdate()))+'.'+convert(char(2),datepart(month,dateadd(month,1,getdate())))+'.'+'01' else select @tmpstr=convert(char(4),datepart(year,dateadd(year,1,getdate())))+'.0'+convert(char(1),datepart(month,dateadd(month,1,getdate())))+'.'+'01' select @curmmlastday=convert(char(10),dateadd(day,-1,@tmpstr),102) --当月最后一天 end declare @st datetime, @ft datetime set @st = dateadd(dd,-day(dateadd(month,-1,getdate()))+1,dateadd(month,-1,getdate())), --上个月一号 @ft = dateadd(dd,-day(getdate())+1,getdate()) ---本月一号 select rtrim(convert(char,@st,111))+''+(convert(char,@st,108)) -- yyyy/mm/dd hh:mi:ss select rtrim(convert(char,@ft,111))+''+(convert(char,@ft,108)) -- yyyy/mm/dd hh:mi:ss ---转化为数据格式20091011181960 select cast(datepart(yy,getdate()) as varchar)+right('00'+cast(datepart(mm,getdate())as varchar),2)+right('00'+cast(datepart(dd,getdate())as varchar),2)+ 2> right('00'+cast(datepart(hh,getdate())as varchar),2)+right('00'+cast(datepart(dd,getdate())as varchar),2)+right('00'+cast(datepart(ss,getdate())as varchar),2) ************************* CONVERT 函数 [数据类型转换] -------------------------------------------------------------------------------- 功能 返回转换成提供的数据类型的表达式。 语法 CONVERT ( data type, expression_r_r_r_r_r_r [ , format-style ] ) 参数 data type 表达式将转换成的数据类型。 expression_r_r_r_r_r_r 要转换的表达式。 format-style 对于将字符串转换为日期或时间数据类型以及相反的转换过程,format-style 是描述要使用的日期格式字符串的样式代码。 format-style 参数的值具有下列含义: 不含世纪 (yy) 含世纪 (yyyy) 输出 - 0 或 100 Mmm dd yyyy hh:nn:ss:sss AM(或 PM) 1 101 mm/dd/yy[yy] 2 102 [yy]yy.mm.dd 3 103 dd/mm/yy[yy] 4 104 dd.mm.yy[yy] 5 105 dd-mm-yy[yy] 6 106 dd Mmm yy[yy] 7 107 Mmm dd, yy[yy] 8 108 hh:nn:ss - 9 或 109 Mmm dd yyyy hh:nn:ss:sssAM(或 PM) 10 110 mm-dd-yy[yy] 11 111 [yy]yy/mm/dd 12 112 [yy]yymmdd 13 113 dd Mmm yyy hh:nn:ss:sss(24 小时制,欧洲缺省时间 + 毫秒,4 位数年份) 14 114 hh:nn:ss:sss(24 小时制) 20 120 yyyy-mm-dd hh:nn:ss:sss(24 小时制,ODBC 规范,4 位数年份) 21 121 yyyy-mm-dd hh:nn:ss.sss(24 小时制,ODBC 规范加毫秒,4 位数年份) ps:在convert的有些转换类型,在sql service和 sybase中输出的是不一样的结果。