sqlserver 时间函数用法

1.DATEADD(datepart,number,date)

    现在,我们希望向 "OrderDate" 添加 2 天,这样就可以找到付款日期,我们使用如下 SELECT 语句:

SELECT OrderId,DATEADD(day,2,OrderDate) AS OrderPayDate
FROM Orders
① 本月第一天(--减去今天再加上1天) 
SELECT DATEADD(DD,-DAY(GETDATE())+1,GETDATE())

SELECT DATEADD(MM, DATEDIFF(MONTH,0,GETDATE()), 0)

②本月最后一天 
SELECT DATEADD(DD,-DAY(DATEADD(M,1,GETDATE())),DATEADD(M,1,GETDATE()))
③本周的星期一 
 
 SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)

   本周的最后一天(星期天) 
select dateadd(wk,(SELECT DATEDIFF(wk,0,GETDATE())),6)   

④一年的第一天 
  现在用年(yy)的时间间隔来显示这一年的第一天。 
  SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)

⑤季度的第一天 
  假如你要计算这个季度的第一天,这个例子告诉你该如何做。 
 
SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0) 

6一年的最后一天 
  现在用年(yy)的时间间隔来显示这一年的最后一天。 很简单,先算出这一年的第一天, 
SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0),然后加一年减一天,即是本年的最后一天 
SELECT DATEADD(DD,-1,DATEADD(YY,1,DATEADD(YY,DATEDIFF(YY,0,GETDATE()),0)))


2.DATEDIFF() 函数返回两个日期之间的时间。

返回当天数据 between DATEADD(dd, DATEDIFF(dd,0,getdate()), 0) and DATEADD(dd, DATEDIFF(dd,0,getdate()+1), 0)



3.DATEPART 返回代表指定日期的指定日期部分的整数。
原文地址:https://www.cnblogs.com/l1pe1/p/7232259.html