1. 程式人生 > >SQL 計算datetime的差值,查詢最近幾秒有變動的資料

SQL 計算datetime的差值,查詢最近幾秒有變動的資料

資料庫操作中,如果要查詢最近五秒更新的資料有哪些,可以現在資料庫里加一列用來存插入資料時的時間,相當於Insert、update等操作的時候,多加一個系統時間就行了
然後select語句就可以通過datediff()這個函式來求你存的時間和select執行的時候的系統時間的差值,單位可以是秒、分、時、天、等等。
例如我要查A表裡面最近五秒插入了哪些資料:
A表裡面有Time這一列,用來存insert、update等操作的時候的系統時間

select * from A where DateDiff(ss,Time,GETDATE())<5

DateDiff這個函式一共三個引數,第一個是返回的資料單位,可以是秒,分,時等等,第二個是StartTime,第三個是EndTime,計算的時候是EndTime-StartTime,返回一個int,如果計算2016年和1900年相差多少秒,那就溢位了,對於秒,最大數是 68 年

我們再看下SQL有關的時間計算的用法
內容轉載自http://blog.csdn.net/pengpegv5yaya/article/details/8024677
上面說到的第一個引數有以下縮寫
日期部分 縮寫
year yy, yyyy
quarter qq, q
Month mm, m
dayofyear dy, y
Day dd, d
Week wk, ww
Hour hh
minute mi, n
second ss, s
millisecond ms

SQLServer時間日期函式詳解,SQLServer,時間日期,
1.      當前系統日期、時間
        select
getdate() 2. dateadd 在向指定日期加上一段時間的基礎上,返回新的 datetime 值 例如:向日期加上2select 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') --返回 10 5. 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-date1 DateAdd (interval,number,date) 以interval指定的方式,加上number之後的日期 DatePart (interval,date) 返回日期date中,interval指定部分所對應的整數值 DateName (interval,date) 返回日期date中,interval指定部分所對應的字串名稱

SQL有關的一些函式,做查詢條件的時候不用寫select,直接用函式

--獲取當前日期(如:yyyymmdd hh:MM:ss)
select GETDATE()

--獲取當前日期(如:yyyy-mm-dd)
Select Datename(year,GetDate())+'-'+Datename(month,GetDate())+'-'+Datename(day,GetDate())

--獲取當前日期(如:yyyy/mm/dd)
select DATENAME(YEAR,GETDATE())+'/'+DATENAME(MONTH,GETDATE())+'/'+DATENAME(DAY,GETDATE())

--獲取幾種日期
select DATENAME(YEAR,GETDATE()) --年份(YYYY)
select DATENAME(YY,GETDATE())

select DATENAME(MM,GETDATE()) --月份
select DATENAME(DD,GETDATE()) --日期
select dateName(hh,getdate()) --獲取小時
select DATENAME(MI,GETDATE()) --獲取分鐘
select DATENAME(SECOND,GETDATE()) --獲取秒
select DATENAME(WEEK,GETDATE()) --獲取當前星期(周)是這一年中的第幾個星期(周)
select DATENAME(WEEKDAY,GETDATE()) --星期幾