各位高手看一下这个问题,是不是怎么解决的

xiaochangpin 2003-10-21 08:41:25
我昨天问题了一个问题如下:
------------------
我的表里有两个“日期/时间型”字段,内容分别为:8:00:00和17:00:00,现在主要想判断当前时间是否在这个两个时间之间?请帮忙

各位高手答如下:
-----------------
select * from tablename where convert(varchar,getdate(),108) between 字段1 and 字段2

但后来我试了一下符合条件的记录还是不能显示,后来我改了一下就行了:
-------------------------------
select * from tablename where convert(char(8),getdate(),108) between convert(char(8),SWorkTime,108) and convert(char(8),EWorkTime,108)

我想问一下各位帮我解答的网友为什么结果显示不出来呢,谢谢
...全文
66 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
pengdali 2003-10-21
  • 打赏
  • 举报
回复
或:

select * from tablename where
datediff(ss,convert(char(8),getdate(),108),convert(char(8),SWorkTime,108))<=0
and datediff(ss,convert(char(8),getdate(),108),convert(char(8),EWorkTime,108))>=0
yujohny 2003-10-21
  • 打赏
  • 举报
回复
那是因为你SWorkTime字段保存的是这样格式2003-10-18 20:30:01
所以用这个select * from tablename where convert(varchar,getdate(),108) between 字段1 and 字段2
不行
而用这个就行:
select * from tablename where convert(char(8),getdate(),108) between convert(char(8),SWorkTime,108) and convert(char(8),EWorkTime,108)
伍子V5 2003-10-21
  • 打赏
  • 举报
回复
如果字段是字符类型

select * from tablename where convert(varchar,getdate(),108) between 字段1 and 字段2

如果字段是时间类型

select * from tablename where getdate() between 字段1 and 字段2
pengdali 2003-10-21
  • 打赏
  • 举报
回复
select * from tablename where cast(convert(char(8),getdate(),108) as datetime) between convert(char(8),SWorkTime,108) and convert(char(8),EWorkTime,108)

34,588

社区成员

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

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