SQL中DATEADD和DATEDIFF的使用方法
DATEADD函式計算一個日期通過給時間間隔加減來獲得一個新的日期,DATEDIFF函式計算兩個日期之間的小時、天、周、月、年等時間間隔總數。
1、SQL Server DATEADD() 函式
定義和用法
DATEADD() 函式在日期中新增或減去指定的時間間隔。
語法
DATEADD(datepart,number,date)
date 引數是合法的日期表示式。number 是您希望新增的間隔數;對於未來的時間,此數是正數,對於過去的時間,此數是負數。
datepart 引數可以是下列的值:
datepart | 縮寫 |
---|---|
年 | yy, yyyy |
季度 | qq, q |
月 | mm, m |
年中的日 | dy, y |
日 | dd, d |
周 | wk, ww |
星期 | dw, w |
小時 | hh |
分鐘 | mi, n |
秒 | ss, s |
毫秒 | ms |
微妙 | mcs |
納秒 | ns |
例項
假設我們有下面這個 "Orders" 表:
OrderId | ProductName | OrderDate |
---|---|---|
1 | 'Computer' | 2008-12-29 16:25:46.635 |
現在,我們希望向 "OrderDate" 新增 2 天,這樣就可以找到付款日期。
我們使用如下 SELECT 語句:
SELECT OrderId,DATEADD(day,2,OrderDate)
AS OrderPayDate
FROM Orders
結果:
OrderId | OrderPayDate |
---|---|
1 | 2008-12-31 16:25:46.635 |
2、SQL Server DATEDIFF() 函式
定義和用法
DATEDIFF() 函式返回兩個日期之間的天數。
語法
DATEDIFF(datepart,startdate,enddate)
startdate 和 enddate 引數是合法的日期表示式。
datepart 引數可以是下列的值:
datepart | 縮寫 |
---|---|
年 | yy, yyyy |
季度 | qq, q |
月 | mm, m |
年中的日 | dy, y |
日 | dd, d |
周 | wk, ww |
星期 | dw, w |
小時 | hh |
分鐘 | mi, n |
秒 | ss, s |
毫秒 | ms |
微妙 | mcs |
納秒 | ns |
例項
例子 1
使用如下 SELECT 語句:
SELECT DATEDIFF(day,'2008-12-29','2008-12-30') AS DiffDate
結果:
DiffDate |
---|
1 |
例子 2
使用如下 SELECT 語句:
SELECT DATEDIFF(day,'2008-12-30','2008-12-29') AS DiffDate
結果:
DiffDate |
---|
-1 |
本月的第一天:
- Select dateadd(ms,0,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)) as 時間
本月的最後一天:
- Select dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))
上個月的最後一天:
- Select dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)) as 時間
去年的最後一天:
- Select dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))
- Select dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0))
2016-01-21的12個月前的那個月的第一天:
- Select dateadd(mm,-12,DATEADD(mm, DATEDIFF(mm,0,'2016-01-21'), 0)) as 時間
一年中指定周的第一天:
- DECLARE @本年第一天 datetime,@本年第一天是星期幾 int,@Week int
- set @本年第一天=DATEADD(ms,0,DATEADD(yy, DATEDIFF(yy,0,GETDATE()), 0))
- set @本年第一天是星期幾=DATEPART(dw,DATEADD(ms,0,DATEADD(yy, DATEDIFF(yy,0,GETDATE()), 0)))
- set @Week=1--今年第一週
- select DATEADD(day,(@Week-1)*7-@本年第一天是星期幾+2,@本年第一天)
轉載:https://blog.csdn.net/Gordennizaicunzai/article/details/50710130
相關文章
- SQL Server中的日期和時間:DATEADD()SQLServer
- sql中limit使用方法SQLMIT
- Sql中SYSDATE函式的使用方法SQL函式
- SQL Server資料庫之datepart和datediff應用查詢當天上午和下午的資料SQLServer資料庫
- SQL SERVER資料庫datediff函式引發的效能問題SQLServer資料庫函式
- postgresql和mysql中的limit使用方法MySqlMIT
- Python中類的建立和使用方法Python
- Unfolder中的補丁和元素使用方法
- 簡單介紹SQL中ISNULL函式使用方法SQLNull函式
- C#/Vsto中CustomTaskPanes和Ribbon的使用方法C#
- SQL中where和on的區別SQL
- sql中union和union all的用法SQL
- Jquery 和 Ajax的 使用方法jQuery
- java中json的使用方法JavaJSON
- react中hooks的使用方法ReactHook
- Linux 中 ranger 的使用方法LinuxRanger
- YogaKit中 position 的使用方法
- jquery 中 $.map 的使用方法jQuery
- Django REST framework中認證和許可權的使用方法DjangoRESTFramework
- sql中UNION和UNION ALL的區別SQL
- SQL調優工具包DBMS_SQLTUNE的使用方法SQL
- 達夢SQL優化利器-ET使用方法SQL優化
- 報表工具中動態引數的使用方法和場景
- SLF4J 和 Logback 在 Maven 專案中的使用方法Maven
- Java中try()catch{}的使用方法Java
- Go 中 io 包的使用方法Go
- SpringAop中JoinPoint物件的使用方法Spring物件
- sql中in和exists的原理及使用場景。SQL
- SQL Server中count(*)和Count(1)的區別SQLServer
- nmon 和nmon analyser工具的使用方法
- Python中zip函式的使用方法Python函式
- vue3中mixin的使用方法Vue
- Java script 中的函式使用方法Java函式
- Django中 render() 函式的使用方法Django函式
- 深入解析JQuery中的isPlainObject()使用方法jQueryAIObject
- 【SQL】SQL中if條件的使用SQL
- 在Pandas中 SQL操作:SQLAlchemy和PyMySQL的區別MySql
- SQL Server中的集合運算: UNION, EXCEPT和INTERSECTSQLServer