日期:2014-05-18  浏览次数:20779 次

sql2005 函数处理求解
主要是日期类型的函数处理相关方面的知识,大家有没有相关方面的资料,谢了

------解决方案--------------------
精华帖里面有N多
------解决方案--------------------
sql Server的帮助最权威了
------解决方案--------------------
SQL code
MS SQL Server中文版的预设日期datetime格式是yyyy-mm-dd hh:mm:ss.mmm 
长短日期格式 

复制代码 代码如下:
--短日期格式:yyyy-m-d 
SELECT REPLACE(CONVERT(varchar(10),getdate(),120),N'-0','-') 
--长日期格式:yyyy年mm月dd日 
SELECT STUFF(STUFF(CONVERT(char(8),getdate(),112),5,0,N'年'),8,0,N'月')+N'日' 
--短日期格式:yyyy年m月d日 
SELECT DATENAME(Year,getdate())+N'年'+CAST(DATEPART(Month,getdate()) AS varchar)+N'月'+DATENAME(Day,getdate())+N'日' 
--完整日期+时间格式:yyyy-mm-dd hh:mi:ss:mmm 
SELECT CONVERT(char(11),getdate(),120)+CONVERT(char(12),getdate(),114) 

CONVERT 

复制代码 代码如下:
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 
Select CONVERT(varchar(100), GETDATE(), 114) : 10:57:49:547 
Select CONVERT(varchar(100), GETDATE(), 120) : 2006-05-16 10:57:49 
Select CONVERT(varchar(100), GETDATE(), 121) : 2006-05-16 10:57:49.700 
Select CONVERT(varchar(100), GETDATE(), 126) : 2006-05-16T10:57:49.827 
Select CONVERT(varchar(100), GETDATE(), 130) : 18 ???? ?????? 1427 10:57:49:907AM 
Select CONVERT(varchar(100), GETDATE(), 131) : 18/04/1427 10:57:49:920AM 

可以根据varchar(100) 的长度做相应的截取。 
详细出处参考:http://www.jb51.net/article/23852.htm



















SQLServer时间日期函数速查 

SQLServer时间日期函数详解,SQLServer,时间日期,1.      当前系统日期、时间 
        select getdate()  

2. dateadd      在向指定日期加上一段时间的基础上,返回新的 datetime 值
       例如:向日期加上2天 
       select dateadd(day,2,'2004-10-15')      --返回:2004-10-17 00:00:00.000

3. datediff 返回跨两个指定日期的日期和时间边界数。
       select datediff(day,'2004-09-01','2004-09-18')       --返回:17

       select datediff(day,'2004-09-18','2004-09-01')       --返回:-17

4. datepart 返回代表指定日期的指定日期部分的整数。
      SELECT DATEPART(month, '2004-10-15')      --返回