日期:2014-05-19  浏览次数:20766 次

求一个SQL语句
有两个表,一个用户表,里面有用户名,最后登陆时间等字段,一个消息表,有接收人,发送时间等字段,现在A给B发消息,在发送的页面有一个listbox设置时效天数,假如B登陆时超过A所设置的天数,消息就删除,不知道这个删除语句如何写,主要是时间的判断。
现在在登陆button下更新数据库取得了最后登陆时间,string   sql   =   "update   用户信息表   set   最后登陆时间   =   ' "   +   System.DateTime.Now.ToString( "yyyy-MM-dd   HH:mm:ss ")   +   " 'where   用户名   =   ' "   +   Session[ "name "]   +   " ' ";
                L_database.execsql(sql);
接下来怎么办呢?

------解决方案--------------------
delete 消息表 where id in
(
select a.id from 消息表 a inner join 用户表 b on a.用户名=b.用户名 and DATEADD(day, a.设置的天数,a.发送时间)> b.登陆时间
)

id 是关键字

*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)

最新版本:20070212

http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
------解决方案--------------------
string sql1 = "delete from 消息表 where id in (select a.id from 消息表 a inner join 用户信息表 b on a.接收人=b.用户名 and DATEADD(day, a.时效,a.发送时间)> b.最后登陆时间) ";