菜鸟遇到一个棘手的sql server查询问题,请大虾们帮忙。急,在线等!

sh_zll 2004-12-22 02:31:01
表t_test

id mainid startdate enddate need
1 1 00:00:00 07:30:00 5
2 1 07:30:00 19:30:00 10
3 1 19:30:00 23:59:59 20
4 2 00:00:00 07:30:00 25
5 2 07:30:00 19:30:00 15
6 3 19:30:00 23:59:59 10

将一天分为三段时间,分别由startdate和enddate限定,如表上所示。
请问,怎么根据现在的时间取出表中mainid是1的need字段的值
比如现在是14点20分,那么我取出的应该是id为2的这条数据中的need,它的值是10
到了晚上10点,那么我取出的应该是id为3的这条数据中的need,它的值是20

非常感谢!
...全文
95 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ReViSion 2004-12-22
  • 打赏
  • 举报
回复
select mainid,need from t_test where
getdate()>startdate and getdate()<enddate

这里Startdate和enddate为时间,把它们转为日期加时间既可。


sh_zll 2004-12-22
  • 打赏
  • 举报
回复
那如果startdate和enddate本身就是datetime类型的呢?比如startdate是2004.12.22 00:00:00,enddate是2004.12.22 07:30:00.但不需要判定哪天,还是只判定时间。是不是也是这么写?好像取不到。谢谢!
子陌红尘 2004-12-22
  • 打赏
  • 举报
回复
select need from t_test where
(cast(convert(varchar(8),getdate(),114) as datetime) between cast(startdate as datetime) and cast(enddate as datetime)) and mainid = ...

34,837

社区成员

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

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