sql时间日期函数使用说明

作者:袖梨 2022-06-29

1、dateadd  加日期函数

select dateadd(day,2,'2004-10-15')  --返回:2004-10-17 00:00:00.000

当然也可以加月份     select dateadd(month,2,'2004-10-15')

2、datediff 返回两个日期之间日期

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

 和dateadd  一样,day也可以换成别的

3、datepart 返回代表指定日期的指定日期部分的整数

    Select DATEPART(month, '2004-10-15')  --返回 10

4、datename 返回代表指定日期的指定日期部分的字符串

 Select datename(weekday, '2004-10-15')  --返回:星期五

 

函数 参数/功能
GetDate( )  返回系统目前的日期与时间
DateDiff (interval,date1,date2) 以interval 指定的方式,返回date2 与date1两个日期之间的差值 date2-date1
DateAdd (interval,number,date) 以interval指定的方式,加上number之后的日期
DatePart (interval,date) 返回日期date中,interval指定部分所对应的整数值
DateName (interval,date) 返回日期date中,interval指定部分所对应的字符串名称

参数 interval的设定值如下:

 

缩 写(Sql Server) (Access 和 ASP) 说明
Year Yy yyyy 年 1753 ~ 9999
Quarter Qq q   季 1 ~ 4
Month Mm m   月1 ~ 12
Day of year Dy 一年的日数,一年中的第几日 1-366
Day Dd d   日,1-31
Weekday Dw w 一周的日数,一周中的第几日 1-7
Week Wk ww  周,一年中的第几周 0 ~ 51
Hour Hh h   时0 ~ 23
Minute Mi 分钟0 ~ 59
Second Ss s 秒 0 ~ 59
Millisecond Ms - 毫秒 0 ~ 999

下面的几个方法有代表性

    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')

 

1.一个月第一天的
Select DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)

2.本周的星期一
Select DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)

3.一年的第一天
Select DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)

4.季度的第一天
Select DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)

5.当天的半夜
Select DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)

6.上个月的最后一天
Select dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))

7.去年的最后一天
Select dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))

8.本月的最后一天
Select dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))

9.本年的最后一天
Select dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0))

10.本月的第一个星期一
select DATEADD(wk, DATEDIFF(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())), 0)

相关文章

精彩推荐