SQL语句 关于时间(50分)

  • 主题发起人 主题发起人 fossil
  • 开始时间 开始时间
F

fossil

Unregistered / Unconfirmed
GUEST, unregistred user!
数据库为SQL SERVER
select PersonAttend.YYYYDD, PersonAttend.PNo, PersonAttend.Onwork, PersonAttend.Freework, Persons.PNo,
Persons.Pname, Persons.DNo
from PersonAttend, Persons where (Persons.PNo=PersonAttend.PNo)
and (Persons.DNo='DN') and (PersonAttend.YYYYDD between '2002-09-01' and '2002-10-31')
以上语句能正常返回数据,如果加上
and (PersonAttend.OnWork between '08:35:00' and '09:15:00')
其中OnWork 是时间字段类型,这样什么数据也返回不了,这是什么原因!肯定有数据满足这样的条件
 
你应该加入CONVERT函数
 
你说清楚点,或者有QQ,我加你
还有人会吗
 
你应当把你一字符串表示的“时间”,用转换函数转换成时间格式。
 
用convert 或 cast先转换成字符串
 
你应该把时间和日期加在一起
否则就不能用 and
 
我在sybase遇到过类似问题:
时间中其实包含了日期(是你录入时的日期),如数据录入时是1998.7.6 9:00:00,则
数据库中PersonAttend.OnWork的值是:“1998-7-6 9:00:00”。
而在取记录的时候'08:35:00' and '09:15:00'的隐含日期是一个缺省值,不是1998.7.6,
这样这条记录就取不出了。
把PersonAttend.OnWork中的时间部分单独取出来就好了。
用convert把它转为字符型应该也可以。
 
接受答案了.
 
后退
顶部