SQL日期与时间函数2009年02月04日星期三上午10:50sql server日期时间函数Sql Server中的日期与时间函数1. 当前系统日期、时间select getdate()2. dateadd 在向指定日期加上一段时间的基础上,返回新的datetime 值例如:向日期加上2天select dateadd(day,2,'2004-10-15') --返回:2004-10-17 00:00:00.0003. datediff 返回跨两个指定日期的日期和时间边界数。
select datediff(day,'2004-09-01','2004-09-18') --返回:174. datepart 返回代表指定日期的指定日期部分的整数。
SELECT DATEPART(month, '2004-10-15') --返回105. datename 返回代表指定日期的指定日期部分的字符串SELECT datename(weekday, '2004-10-15') --返回:星期五6. day(), month(),year() --可以与datepart对照一下select 当前日期=convert(varchar(10),getdate(),120),当前时间=convert(varchar(8),getdate(),114)select datename(dw,'2004-10-15')select 本年第多少周=datename(week,'2004-10-15'),今天是周几=datename(weekday,'2004-10-15')函数参数/功能GetDate( ) 返回系统目前的日期与时间DateDiff (interval,date1,date2) 以interval 指定的方式,返回date2 与date1两个日期之间的差值date2-date1DateAdd (interval,number,date) 以interval指定的方式,加上number之后的日期DatePart (interval,date) 返回日期date中,interval指定部分所对应的整数值DateName (interval,date) 返回日期date中,interval指定部分所对应的字符串名称参数interval的设定值如下:值缩写(Sql Server)Access 和ASP 说明Year Yy yyyy 年1753 ~ 9999Quarter Qq q 季1 ~ 4Month Mm m 月1 ~ 12Day of year Dy y 一年的日数,一年中的第几日1-366 Day Dd d 日,1-31Weekday Dw w 一周的日数,一周中的第几日1-7Week Wk ww 周,一年中的第几周0 ~ 51 Hour Hh h 时0 ~ 23Minute Mi n 分钟0 ~ 59Second Ss s 秒0 ~ 59Millisecond Ms - 毫秒0 ~ 999access 和asp 中用date()和now()取得系统日期时间;其中DateDiff,DateAdd,DatePart也同是能用于Access和asp中,这些函数的用法也类似举例:1.GetDate() 用于sql server :select GetDate()2.DateDiff('s','2005-07-20','2005-7-25 22:56:32')返回值为514592 秒DateDiff('d','2005-07-20','2005-7-25 22:56:32')返回值为5 天3.DatePart('w','2005-7-25 22:56:32')返回值为2 即星期一(周日为1,周六为7)DatePart('d','2005-7-25 22:56:32')返回值为25即25号DatePart('y','2005-7-25 22:56:32')返回值为206即这一年中第206天DatePart('yyyy','2005-7-25 22:56:32')返回值为2005即2005年----------------------------------------Sql Server 常用日期格式发布于:2006-2-24 17:53:25 已被阅读:158SQL 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 replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','') 20040912110608select CONVERT(varchar(12) , getdate(), 23 )2004-09-12select CONVERT(varchar(12) , getdate(), 111 )2004/09/12select CONVERT(varchar(12) , getdate(), 112 ) 20040912select CONVERT(varchar(12) , getdate(), 102 ) 2004.09.12select CONVERT(varchar(12) , getdate(), 101 ) 09/12/2004select CONVERT(varchar(12) , getdate(), 103 ) 12/09/2004select CONVERT(varchar(12) , getdate(), 104 ) 12.09.2004select CONVERT(varchar(12) , getdate(), 105 ) 12-09-2004select CONVERT(varchar(12) , getdate(), 106 ) 12 09 2004select CONVERT(varchar(12) , getdate(), 107 ) 09 12, 2004select CONVERT(varchar(12) , getdate(), 108 ) 11:06:08select CONVERT(varchar(12) , getdate(), 109 ) 09 12 2004 1select CONVERT(varchar(12) , getdate(), 110 ) 09-12-2004select CONVERT(varchar(12) , getdate(), 113 ) 12 09 2004 1select CONVERT(varchar(12) , getdate(), 114 ) 11:06:08.177SimpleDateFormat myFmt=new SimpleDateFormat("yy/MM/dd ");String time=myFmt.format(now);--------------------------Timestamp转化为String:SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//定义格式,不显示毫秒Timestamp now = new Timestamp(System.currentTimeMillis());//获取系统当前时间String str = df.format(now);String转化为Timestamp:SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String time = df.format(new Date());Timestamp ts = Timestamp.valueOf(time);-----------------------------------------------------------------------------1.DateAdd (I , N , D )将一个日期加上一段期间后的日期。
I :设定一个日期(Date )所加上的一段期间的单位。
譬如interval="d" 表示N的单位为日。
I的设定值如下:yyyy Year 年q Quarter 季m Month 月d Day 日w Weekday 星期h Hour 时n Minute 分s Second 秒N :数值表达式,设定一个日期所加上的一段期间,可为正值或负值,正值表示加(结果为>date 以后的日期),负值表示减(结果为>date 以前的日期)。
D :待加减的日期。
例子:DateAdd ("m" , 1 , "31-Jan-98")结果:28-Feb-98说明:将日期31-Jan-98 加上一个月,结果为28-Feb-98 而非31-Fe-98 。
例子:DateAdd ("d" , 20 , "30-Jan-99")结果:1999/2/9说明:将一个日期30-Jan-99 加上20 天后的日期。
2.Day( 日期的字符串或表达式)传回日期的「日」部份。
例子:Day(" 12/1/1999 ")结果:13.DateDiff (I , D1 , D2[,FW[,FY]])计算两个日期之间的期间。
I :设定两个日期之间的期间计算之单位。
譬如>I="m" 表示计算的单位为月。
>I 的设定值如:yyyy > Year 年q Quarter 季m Month 月d Day 日w Weekday 星期h Hour 时n Minute 分s Second 秒D1 ,D2:计算期间的两个日期表达式,若>date1 较早,则两个日期之间的期间结果为正值;若>date2 较早,则结果为负值。