日期:2014-05-18  浏览次数:20413 次

急呀!!!!关于时间差问题,各位帮帮我。
我的数据库   Log_Call中有三列,
Alarm_Start(datetime且不允空)     Alarm_End(datetime)     Alarm_Long

2007-8-20   13:20:15               2007-8-20   14:13:20         (由Alarm_End-Alarm_Start产生)

Alarm_Start和Alarm_End是由报警设备产生的,想要每生成一次报警,从开始到结束就计算一次时间差并放到Alarm_Long里,写入数据库.客户端通过工具随时调出相应数据来.

我是个菜鸟级程序员,请各位大哥大姐帮帮小弟吧!

------解决方案--------------------

create table t(alarm_start datetime, alarm_end datetime , alarm_long int)

insert into t select '2007-8-20 13:20:15 ', '2007-8-20 14:13:20 ',null

select * from t

--更新为秒
update t set alarm_long =datediff(ss,alarm_start,alarm_end)

select * from t

--更新为分
update t set alarm_long =datediff(mi,alarm_start,alarm_end)

select * from t

drop table t
------解决方案--------------------
使用公式字段最简单。

------解决方案--------------------
使用公式字段,系统自动计算时差。
------解决方案--------------------
我的数据库 Log_Call中有三列,
Alarm_Start(datetime且不允空) Alarm_End(datetime) Alarm_Long

2007-8-20 13:20:15 2007-8-20 14:13:20 (由Alarm_End-Alarm_Start产生)

--以秒为例
update tb
set Alarm_Long = datediff(second,Alarm_Start,Alarm_End)
------解决方案--------------------
DATEDIFF
返回跨两个指定日期的日期和时间边界数。

语法
DATEDIFF ( datepart , startdate , enddate )

参数
datepart

是规定了应在日期的哪一部分计算差额的参数。下表列出了 Microsoft® SQL Server™ 识别的日期部分和缩写。

日期部分 缩写
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