当前位置:编程学习 > C#/ASP.NET >>

一条SQL语句

一条SQL语句:
Sql="delete from Forum_Online where Datediff(minute,Forum_Online_Now,getdate())>10";

请问这一条SQL语句是什么意思?“Datediff(minute,Forum_Online_Now,getdate())”又有什么作用??? --------------------编程问答-------------------- 删除当前时间-Forum_Online_Now时间的秒数>10的所有行
Datediff(minute,Forum_Online_Now,getdate())返回getdate()-forum_online_now的秒数 --------------------编程问答-------------------- 喔 说错 是分钟 --------------------编程问答-------------------- 删除 Forum_Online_Now与当前时间相差超过10分钟的记录。。 --------------------编程问答-------------------- 比较Forum_Online_Now和getdate() 时间 的分钟相差>10   --------------------编程问答-------------------- --------------------编程问答-------------------- http://msdn.microsoft.com/zh-cn/library/ms189794(SQL.90).aspx
DATEDIFF 
返回指定的 startdate 和 enddate 之间所跨的指定 datepart 边界的计数(带符号的整数)。
datediff 返回跨两个指定日期的分钟边界数。
Datediff(minute,Forum_Online_Now,getdate())

--------------------编程问答-------------------- Datediff

算两个时间的间隔 第一个参数是间隔 条件(比如秒 分钟 小时 天 这些)

2 3 就是两个时间了。 --------------------编程问答-------------------- --------------------编程问答-------------------- Datediff是SQL函数,这些都可以查看帮助文档 --------------------编程问答--------------------
引用 3 楼 luols 的回复:
删除 Forum_Online_Now与当前时间相差超过10分钟的记录。。

+1 --------------------编程问答-------------------- Sql="delete from Forum_Online where Datediff(minute,Forum_Online_Now,getdate())>10";
前者减去后者【就是用getdate()这个时间值去与固定的时间(你这里是“Forum_Online_Now”)的时间差】,你这里的“minute”指定了分钟,接就是它们之间的差大于10的,就将记录删除。。。 --------------------编程问答--------------------
引用 3 楼 luols 的回复:
删除 Forum_Online_Now与当前时间相差超过10分钟的记录。。

+1 --------------------编程问答--------------------   删除表中前10分钟的记录,lz看一下datadiff的帮助文档就明白了。 --------------------编程问答--------------------
引用 6 楼 wuyq11 的回复:
http://msdn.microsoft.com/zh-cn/library/ms189794(SQL.90).aspx
DATEDIFF 
返回指定的 startdate 和 enddate 之间所跨的指定 datepart 边界的计数(带符号的整数)。
datediff 返回跨两个指定日期的分钟边界数。
Datediff(minute,Forum_Online_Now,getdat……

计算时间差的 --------------------编程问答-------------------- 这个还真不会
--------------------编程问答--------------------

明白了。。。 --------------------编程问答-------------------- up==++ --------------------编程问答-------------------- DATEDIFF (Transact-SQL)
SQL Server 2005 其他版本  SQL Server 2008 R2 
SQL Server 2008 


返回跨两个指定日期的日期边界数和时间边界数。

 Transact-SQL 语法约定

语法
--------------------------------------------------------------------------------

复制 
DATEDIFF ( datepart , startdate , enddate )

参数
--------------------------------------------------------------------------------

datepart 
指定应在日期的哪一部分计算差额的参数。下表列出了 SQL Server 2005 可以识别的日期部分及其缩写。这些日期部分及其缩写不能作为用户声明的变量提供。

日期部分  缩写  
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 配置选项值的后两位数字的值将与截止年份处于同一世纪中。比此选项值的后两位数字大的值先于截止年份的世纪。例如,如果 two-digit year cutoff 为 2049(默认值),则 49 被解释为 2049,2050 被解释为 1950。为避免含糊歧义,请使用四位数表示的年份。 

有关如何指定时间值的详细信息,请参阅时间格式。有关如何指定日期的详细信息,请参阅 日期和时间 (Transact-SQL)。 

enddate 
计算的结束日期。enddate 是返回 datetime 或 smalldatetime 值或日期格式字符串的表达式。

返回类型
--------------------------------------------------------------------------------

integer

备注
--------------------------------------------------------------------------------

enddate 减去 startdate。如果 startdate 晚于 enddate,则返回负值。

如果结果超出整数值范围,则 DATEDIFF 将产生错误。对于毫秒,最大数是 24 天 20 小时 31 分钟零 23.647 秒。对于秒,最大数是 68 年。

跨分钟、秒和毫秒等边界计算的方法使得 DATEDIFF 指定的结果在所有数据类型中均一致。结果是带正负号的整数值,它等于跨第一个和第二个日期间的 datepart 边界数。例如,在 1 月 4 日(星期日)和 1 月 11 日(星期日)之间的星期数是 1。

示例
--------------------------------------------------------------------------------

以下示例确定在 AdventureWorks 数据库中产品的订单日期和当前日期相差的天数。

--------------------编程问答-------------------- 答案已经出来了 --------------------编程问答-------------------- --------------------编程问答--------------------
引用 6 楼 wuyq11 的回复:
http://msdn.microsoft.com/zh-cn/library/ms189794(SQL.90).aspx
DATEDIFF 
返回指定的 startdate 和 enddate 之间所跨的指定 datepart 边界的计数(带符号的整数)。
datediff 返回跨两个指定日期的分钟边界数。
Datediff(minute,Forum_Online_Now,getdat……

正解 --------------------编程问答-------------------- 看文档就明白了撒,上面都贴出来了 --------------------编程问答--------------------
引用 6 楼 wuyq11 的回复:
http://msdn.microsoft.com/zh-cn/library/ms189794(SQL.90).aspx
DATEDIFF 
返回指定的 startdate 和 enddate 之间所跨的指定 datepart 边界的计数(带符号的整数)。
datediff 返回跨两个指定日期的分钟边界数。
Datediff(minute,Forum_Online_Now,getdate……


+++
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,