在线等待!SQL 查询语句的问题

panxuejian 2003-08-21 02:20:31
SELECT * FROM Fee_Main WHERE cCode<>'散客' and ddate>='2003-8-21' and ddate<='2003-8-21' and dtime>='00:00:00' and dtime<='23:59:59'
为何查询不到数据
数据库dTime是Datatime型
请赐教,
...全文
37 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
hansblue 2003-08-21
  • 打赏
  • 举报
回复
SELECT * FROM Fee_main
WHERE (ddate >= '2002-8-21) AND (ddate <= '2002-8-22 23:59:59')
好像这样比较好,我一直这样用.
iiboy 2003-08-21
  • 打赏
  • 举报
回复
SELECT * FROM Fee_Main WHERE cCode<>'散客' and ddate>='2003-8-21' and ddate<='2003-8-22' and dtime>='00:00:00' and dtime<='23:59:59'
babyfast 2003-08-21
  • 打赏
  • 举报
回复
SELECT * FROM dbo.fee_main
WHERE (ddate >= '2002-8-21 10:00:01') AND (ddate <= '2002-8-23 12:00:00')
这样写把!
LCAAA 2003-08-21
  • 打赏
  • 举报
回复
比照这个写就可以了。
dim snpjc As New ADODB.Recordset
s = "select * from 档案 where id = " & Val(Key) & " and 日期 >= convert(snp("更改日期"), " & Format(CVDate(rq), "MM-dd-yyyy hh:mm") & "',102) and 日期 <= convert(datetime,'" & Format(snp("更改日期"), "MM-dd-yyyy hh:mm") & "',102) order by 日期"
snpjc.Open s, cn
panxuejian 2003-08-21
  • 打赏
  • 举报
回复
?
panxuejian 2003-08-21
  • 打赏
  • 举报
回复
我现在查询2003-8-21 10:00:01 到2003-8-23 12:00:00 之间的数据,这个语句应该这样写
谢谢了
victorycyz 2003-08-21
  • 打赏
  • 举报
回复
补充一句,这里的dTime字段不仅是多余的,严格来讲是错误的。因为只写时间不指定日期的话,默认的日期是1900年1月1日。
qianzi0520 2003-08-21
  • 打赏
  • 举报
回复
为什么不用between?
lxcc 2003-08-21
  • 打赏
  • 举报
回复
SELECT * FROM Fee_Main WHERE ddate BETWEEN ( '2002-8-21 00:00:00' AND '2002-8-21 23:59:59')
victorycyz 2003-08-21
  • 打赏
  • 举报
回复
dTime字段确实是多余的。
zhenglc 2003-08-21
  • 打赏
  • 举报
回复
ddate<='2003-8-21' 是2003-8-21 0:00:00之前
ddate>='2003-8-21' and ddate<='2003-8-21'如果ddate是datetime型,这相当于ddate="2003-8-21 0:00:00"
panxuejian 2003-08-21
  • 打赏
  • 举报
回复
??
那时间段不用再建字段了?
我还是希望用dTime字段来查询
victorycyz 2003-08-21
  • 打赏
  • 举报
回复
例:查头天8:00到第二天零点的数据。

SELECT * FROM dbo.fee_main
WHERE (ddate >= '2002-8-21 8:00') AND (ddate <= '2002-8-22')
panxuejian 2003-08-21
  • 打赏
  • 举报
回复
急呀
panxuejian 2003-08-21
  • 打赏
  • 举报
回复
你说的那样指定好用,我现在需要查询某一天的一个时间段的数据,请赐教
panxuejian 2003-08-21
  • 打赏
  • 举报
回复
victorycyz 2003-08-21
  • 打赏
  • 举报
回复
ddate是Datetime型,'2003-8-21'其实是'2003-8-21 00:00:00',是一个时间点,不是对应一天的时间,所以,你改成这样看看:
SELECT * FROM Fee_Main WHERE cCode<>'散客' and ddate>='2003-8-21' and ddate<='2003-8-22'

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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