数据库操作中,如果要查询最近五秒更新的数据有哪些,可以现在数据库里加一列用来存插入数据时的时间,相当于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 值
例如:向日期加上2天
select 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()) --星期几