sqlserver时间差
① 在sqlserver里面,以时间为条件,计算时间相近的两条数据的差值怎么计算,
select datediff(ss,(select max(v) from 表2),(select max(v) from 表1)
② sqlserver 系统时间减五分钟怎么写
这样就可以
selectdateadd(minute,-5,GETDATE())
③ MS SQL Server 中如何计算时间差
正常的话,算时间差的秒数是用datediff函数
比如
select datediff(s,'2013-01-07','2013-04-01')
这个就是算2013年4月1号到2013年1月7号之间的秒数
但是你说各个时间的时间差是什么意思
后边一行减前边一行吗?
还有你是mssql的哪个版本?
④ sqlserver日期计算的问题
首先说明你的DATEDIFF(dd,0,getdate()),这个表示获取当前日期与0之间的天数差,dd表示是用来表示天.然后DATEADD(dd, DATEDIFF(dd,0,getdate()), 0),这个是用来表示0加上你刚才获取的天数差后的日期~
具体的说明如下,你可以自己了解~
------------------------------------------------------------------
DateAdd函数 返回
返回包含一个日期的 Variant (Date),这一日期还加上了一段时间间隔。
语法
DateAdd(interval, number, date)
DateAdd 函数语法中有下列命名参数:
部分 描述
interval 必要。字符串表达式,是所要加上去的时间间隔。
number 必要。数值表达式,是要加上的时间间隔的数目。其数值可以为正数(得到未来的日期),也可以为负数(得到过去的日期)。
date 必要。Variant (Date) 或表示日期的文字,这一日期还加上了时间间隔。
设置
interval 参数具有以下设定值:
设置 描述
yyyy 年
q 季
m 月
y 一年的日数
d 日
w 一周的日数
ww 周
h 时
n 分钟
s 秒
说明
可以使用 DateAdd 函数对日期加上或减去指定的时间间隔。例如,可以用 DateAdd 来计算距今天为三十天的日期;或者计算距现在为 45 分钟的时间。
为了对 date 加上“日”,可以使用“一年的日数” (“y”),“日” (”d”) 或“一周的日数” (”w”)。
DateAdd 函数将不返回有效日期。在以下实例中将 1 月31 日加上一个月:
DateAdd(m, 1, 31-Jan-95)
上例中,DateAdd 返回 1995 年 2 月 28 日,而不是 1995 年 2 月 31 日。如果 date 是 1996 年 1 月 31 日,则由于 1996 年是闰年,返回值是 1996 年 2 月 29 日。
如果计算的日期超前 100 年(减去的年度超过 date 中的年份),就会导致错误发生。
如果 number 不是一个 Long 值,则在计算时取最接近的整数值来计算。
注意 DateAdd 返回值的格式由 Control Panel设置决定,而不是由传递到date 参数的格式决定。
=========================================
DateDiff: SQL server函数
返回 Variant (Long) 的值,表示两个指定日期间的时间间隔数目。
语法
DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])
DateDiff 函数语法中有下列命名参数:
部分 描述
interval 必要。字符串表达式,表示用来计算date1 和 date2 的时间差的时间间隔
Date1□date2 必要;Variant (Date)。计算中要用到的两个日期。
Firstdayofweek 可选。指定一个星期的第一天的常数。如果未予指定,则以星期日为第一天。
firstweekofyear 可选。指定一年的第一周的常数。如果未予指定,则以包含 1 月 1 日的星期为第一周。
设置
interval 参数的设定值如下:
设置 描述
yyyy 年
q 季
m 月
y 一年的日数
d 日
w 一周的日数
ww 周
h 时
n 分钟
s 秒
----------------------------------------------------------
以上部分来源于网络
⑤ 用sqlserver查询表中数据的时间与当前时间相差多少天
Year(getdate()) --当前年
Month(getdate()) --当前月
Day(getdate()) --当前日
Datediff(d,时间字段,getdate()) --得到离过生日还剩的天数
⑥ sqlserver计算时间的月份差
SELECT TRUNC (months_betwen(SYSDATE ,SYSDATE -100 )) FROM DUAL
你看看
应该能满足你的要求
⑦ SQLServer时间先后的比较问题!
select min(id) from test where modifytime > 动态的时间值
select max(id) from test where modifytime > 动态的时间值
这样就可以了
⑧ sqlserver 如果某字段为空就计算为空的这行和下一行的时间差
DECLARE@lastDateDATE,@dateDATE,@strnvarchar(30);
DECLAREc_test_mainCURSORFAST_FORWARDFOR
SELECT
baby.NICKNAME,--这个就是字符串
baby.CREATE_DATE--这个就是创建的时间
FROMT_BABYbaby
--打开游标.
OPENc_test_main;
--填充数据.
FETCHNEXTFROMc_test_mainINTO@str,@date;
set@lastDate=null;
--假如检索到了数据,才处理.
WHILE@@fetch_status=0
BEGIN
IF@lastDateISNOTNULL
begin
print(DateDiff(minute,@lastDate,@date));
set@lastDate=null;
continue;
END
IF@str=''
begin
set@lastDate=@date;
end
else
begin
set@lastDate=null;
end
FETCHNEXTFROMc_test_mainINTO@str,@date;--游标至下一个
END;
--关闭游标
CLOSEc_test_main;
--释放游标.
DEALLOCATEc_test_main;
中间一些信息什么的替换替换就可以用,我这个只是单行单行的打印出来的,若你想返回一个结果集的话自己改一改就行。相信楼主修改修改还是没问题的。
⑨ MYSQL与SQLSERVER的计算时间差
TIME_TO_SEC(TIMEDIFF('2010-08-20 12:01:00', '2010-08-20 12:00:00'))
⑩ sqlserver查询两个时间之间经历了哪几个月
select datediff(month,'2017-1-5','2018-05-25')/12 ,datediff(month,'2017-1-5','2018-05-25')%12
执行结果:1年4个月
注释:
datediff(month,'2017-1-5','2018-05-25')取出两个日期相差的总月数;
datediff(month,'2017-1-5','2018-05-25')/12 取出两个日期相差的总年数。
datediff(month,'2017-1-5','2018-05-25')%12 取出总年数后,剩余月数。