急,关于时间比较的问题

成都清香白莲 2007-04-17 10:34:37
表中有个datetime类型的字段,我想选出记录中最近(最大)的时间与当前时间进行比较
SELECT * FROM tb WHERE ((SELECT MAX(dt) FROM tb) > GETDATE())
不起作用,全部都选出来了(dt是datetime类型字段),希望帮帮忙,谢谢
...全文
265 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
青锋-SS 2007-04-17
  • 打赏
  • 举报
回复
在秒钟上比就可以啦.
dawugui 2007-04-17
  • 打赏
  • 举报
回复
时间>当前时间
SELECT * FROM tb WHERE datediff(millisecond,dt,GETDATE()) < 0

时间<当前时间
SELECT * FROM tb WHERE datediff(millisecond,dt,GETDATE()) > 0
成都清香白莲 2007-04-17
  • 打赏
  • 举报
回复
很清楚啊,就是从记录里选出最近的时间与当前时间比较如2007-4-17 11:11:26与当前时间进行比较,比较的结果作为条件,如果存在这样的记录,就做……
青锋-SS 2007-04-17
  • 打赏
  • 举报
回复
能把你的要求说的明白一点吗?
成都清香白莲 2007-04-17
  • 打赏
  • 举报
回复
这么的话,不是年、月、日、时、分、秒都有可能要比较,就很麻烦,有没有更简便有效的方法
青锋-SS 2007-04-17
  • 打赏
  • 举报
回复
可以把where条件改成>=0
或者在小时分钟,甚至秒上面比较.
成都清香白莲 2007-04-17
  • 打赏
  • 举报
回复
这个函数好像只根据时间部分参数来比较,day表示天,如果是同一天,就选不出来
青锋-SS 2007-04-17
  • 打赏
  • 举报
回复
不知道楼主想怎么比?
select datediff(n,max(dt),getdate()) from tb
青锋-SS 2007-04-17
  • 打赏
  • 举报
回复
datediff()的第一个参数根据是在小时/分钟/秒......上比较可以改为hour/minute/second
青锋-SS 2007-04-17
  • 打赏
  • 举报
回复
SELECT * FROM tb WHERE datediff(day,dt,GETDATE())>0

34,872

社区成员

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

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