hur.cn - 华软网

 热门搜索

计算DATAWINDOW里两列时间的差!

  作者:未知    来源:网络    更新时间:2019/5/10
我的DATAWINDOW里有两列DATETIME类型的列,1998-10-21 10:30:12,1998-10-31 12:25:12我想用后面字段的值减去前面字段的值,然后赋给我另一列!不知道大家有什么好措施?问了一些人,有人说用计算列dayafter,sencondafter函数,到底详细该怎么做啊?麻烦高人给详细说一下,分对照少,就剩这么多了,还请帮助
------华软网友回答------
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 


startdate

是计算的起头日期。startdate 是前往 datetime 或 smalldatetime 值或日期格式字符串的表达式。 

由于 smalldatetime 只精确到分钟,所以当用 smalldatetime 值时,秒和毫秒总是 0。

如果您只指定年份的最后两位数字,则小于或等于"两位数年份截止期"配置选项的值的最后两位数字的数字所在世纪与截止年所在世纪相同。大于该选项的值的最后两位数字的数字所在世纪为截止年所在世纪的前一个世纪。例如,如果 two digit year cutoff 为 2049(默许),则 49 被解释为 2049,2050 被解释为 1950。为防止模糊,请运用四位数的年份。

有关时间值指定的更多信息,请参见时间格式。有关日期指定的更多信息,请参见 datetime 和 smalldatetime。 

enddate

是计算的终止日期。enddate 是前往 datetime 或 smalldatetime 值或日期格式字符串的表达式。

前往类型
integer

注释
startdate 是从 enddate 减去。如果 startdate 比 enddate 晚,前往负值。

当结果超越整数值范围,DATEDIFF 产生毛病。对于毫秒,最大数是 24 天 20 小时 31 分钟零 23.647 秒。对于秒,最大数是 68 年。

计算跨分钟、秒和毫秒这些界限的方法,使得 DATEDIFF 给出的结果在全数数据类型中是一致的。结果是带正负号的整数值,其等于跨第一个和第二个日期间的 datepart 界限数。例如,在 1 月 4 日(星期日)和 1 月 11 日(星期日)之间的星期数是 1。

示例
此示例确定在 pubs 数据库中题目宣布日期和当前日期间的天数。

USE pubs
GO
SELECT DATEDIFF(day, pubdate, getdate()) AS no_of_days
FROM titles
GO


------华软网友回复------
Date ( datetime ) 拆出来 date
Time ( datetime ) 拆出来 time
然后求差
DaysAfter ( date1, date2 )
SecondsAfter ( time1, time2 )


------华软网友回复------
陌生你的意思,
你指的另一列,是临时列呢,照旧数据库中的列;是想要在数据窗口retrive时计算呢,照旧想在窗口保存时计算呢
------华软网友回复------
daysAfter(date1,date2)函數:在date1之後到date2之間有几多天。用一個compute欄位,在表達式中用daysAfter(date1,date2)函數求出兩日期之間相距几多天。在後端用GetItemX获得計算欄位的值,再SetItem到另外一個欄位。不知道可不能够? 如果用想用sql處理,則用datediff()函數。      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。