如何找出距当前时间大于XX天的记录?

秀小川 2012-10-15 10:09:53
SQL2000下,假设有这么两张表
表1
"用户编号" (主键)
"用户姓名"
.
.
.
表2:
"用户标号"
"时间"
如何通过SQL语句查询出距当前时间超过XX天的用户的详细信息?下面是我写的一点点,感觉没思路了!
DECLARE @date datetime
DECLARE @diff_date datetime
DECLARE @current_date datetime
set @current_date = '2012-12-10'
set @date =
(
SELECT top 1 时间
FROM BuyInformation
ORDER BY 时间 DESC
)
set @diff_date = @current_date - @date
...全文
179 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
秀小川 2012-10-15
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

SQL code
SELECT * FROM USERINFO WHERE userid IN (SELECT userid FROM BuyInformation WHERE DATEDIFF(day, 时间, GETDATE()) > 30)

我假设你BuyInformation 表有userid和userinfo表关联
[/Quote]
就是这个意思,原来如此简单! 谢谢了!
發糞塗牆 2012-10-15
  • 打赏
  • 举报
回复
SELECT * FROM USERINFO WHERE userid IN  (SELECT userid FROM BuyInformation WHERE  DATEDIFF(day, 时间, GETDATE()) > 30)

我假设你BuyInformation 表有userid和userinfo表关联
發糞塗牆 2012-10-15
  • 打赏
  • 举报
回复
BuyInformation有userid之类的字段吗?
發糞塗牆 2012-10-15
  • 打赏
  • 举报
回复
你不需要使用@current_date,直接使用getdate()函数就可以代表你查询的当前时间了。
秀小川 2012-10-15
  • 打赏
  • 举报
回复

[Quote=引用 3 楼 的回复:]

你试试是不是你想要的:SQL code
DECLARE @date datetime
DECLARE @current_date datetime
set @current_date = '2012-12-10'
set @date =
(
SELECT top 1 时间 as date
FROM BuyInformation
WHERE 用户编号 = '000100010……
[/Quote]
这个也只能判断一个固定用户,我的意思是判断所有的用户,返回所有符合条件的用户信息!
發糞塗牆 2012-10-15
  • 打赏
  • 举报
回复
你试试是不是你想要的:
DECLARE @date datetime
DECLARE @current_date datetime
set @current_date = '2012-12-10'
set @date =
(
SELECT top 1 时间 as date
FROM BuyInformation
WHERE 用户编号 = '000100010001'
ORDER BY 时间 DESC
)
--if ( DATEDIFF(day, @date, @current_date > 30 )
-- BEGIN
SELECT * FROM USERINFO WHERE DATEDIFF(day, @date, @current_date > 30--用户编号 = '000010001001'
--END
秀小川 2012-10-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

使用这个来判断DATEDIFF(dd,[需要对比的日期列],GETDATE())>xxx距当前时间大于XX天的记录
[/Quote]
多谢回答,居然有这么个函数不知道!我下面这段查询只能判断一个用户,如何对所有符合条件的记录都返回?

DECLARE @date datetime
DECLARE @current_date datetime
set @current_date = '2012-12-10'
set @date =
(
SELECT top 1 时间 as date
FROM BuyInformation
WHERE 用户编号 = '000100010001'
ORDER BY 时间 DESC
)
if ( DATEDIFF(day, @date, @current_date > 30 )
BEGIN
SELECT * FROM USERINFO WHERE 用户编号 = '000010001001'
END

發糞塗牆 2012-10-15
  • 打赏
  • 举报
回复
使用这个来判断DATEDIFF(dd,[需要对比的日期列],GETDATE())>xxx距当前时间大于XX天的记录
内容概要:本文介绍了一种基于多目标粒子群算法(MOPSO)的微电网优化调度模型,综合考虑风能、光伏、储能系统、柴油发电机、燃气轮机以及与主电网之间的能量交互等多种分布式能源的协同运行。通过构建以运行成本最小化、碳排放最低化和系统可靠性最优化为目标的多目标优化模型,利用Matlab平台实现MOPSO算法求解,完成对微电网在不同运行场景下的能量管理与调度方案优化。该模型能够有效平衡经济性与环保性之间的关系,适用于含多类型分布式电源的复杂微电网系统,具有较强的工程应用价值和科研参考意义; 适合人群:具备一定电力系统基础知识和Matlab编程能力的研究生、科研人员及工程技术人员,尤其适合从事微电网、智能电网、综合能源系统、可再生能源集成与优化调度等领域研究的专业人士; 使用场景及目标:①用于多能源耦合微电网系统的协同优化调度研究;②支持多目标智能优化算法在能源系统中的建模与求解实践,帮助用户掌握MOPSO在实际工程问题中的应用方法;③为学术论文复现、毕业设计、科研项目开发提供完整的代码实例与技术支撑; 阅读建议:建议读者结合Matlab代码与理论文档,深入理解目标函数构建、约束条件处理及Pareto最优解集生成机制,重点关注算法参数设置、多目标权衡分析与结果可视化,并可通过调整能源配置或引入新约束进行二次开发与创新研究。

34,876

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧