谁来帮我看看这个SQL语句到底有什么问题呀?

lm517 2003-09-04 09:35:10
text1.text="03-09-04 00:00:00"
text2.text="03-09-06 23:59:59"

strsql = "select * from 结算信息表 where 结账日期 >= '" + Text1.Text + "' and 结账日期 < = '"+ frmquerysyqk.Text2.Text + "'"

假如结账日期为:03-09-05 05:12:30 格式是文本型.
...全文
70 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
xingnup 2003-09-11
  • 打赏
  • 举报
回复
如果是Access的数据库,日期值要用"#"括起来才能用.例如:=#03-09-04 00:00:00#
jjkcom 2003-09-09
  • 打赏
  • 举报
回复
to 搂主:
以下是你应该明白的问题:
1、不同的sql语句在不同的数据库软件是有差别的
2、日期类型是可以当作字符串来进行处理
3、在sql中cast()函数可以处理/vb中cdate()函数可以处理
4、如果用户输入了"aaa",你应该知道会出现什么事情?
renyi123 2003-09-07
  • 打赏
  • 举报
回复
Text.Text 的类型是字符串型的,试试下面的语句呢?

strsql = "select * from 结算信息表 where 结账日期 >= ' val( Text1.Text )' and 结账日期 < = 'val( frmquerysyqk.Text2.Text )'"
warlord 2003-09-05
  • 打赏
  • 举报
回复
cdate()转换的仅是日期,不包括时间。
参考DATEPART(portion, datetime)
david1981 2003-09-05
  • 打赏
  • 举报
回复
你用format函数先将字符串格式化成yyyy-mm-dd hh:mm:ss的形式,然后再加入条件中试试
cqlisle 2003-09-05
  • 打赏
  • 举报
回复
要看看你用的什么数据库了如果是oracle就应是这样
结帐日期 >= to_date(text1.text,'yyyy-mm-dd')
lm517 2003-09-05
  • 打赏
  • 举报
回复
如何在表中找到满足条件的一条记录后,就加到msflexgrid里去,就是找到一条加一条。
lm517 2003-09-05
  • 打赏
  • 举报
回复
用cdate()转换了还是不行,说类型不匹配。
xingnup 2003-09-05
  • 打赏
  • 举报
回复
用日期型比较安全,若一定要用字符串,则可用strComp函数对字符串进行比较.
CobraKing 2003-09-04
  • 打赏
  • 举报
回复
如果是访问ACCESS数据库,时间类型的字段要用#03-09-05 05:12:30#的形式,而不是'03-09-05 05:12:30'。
jjkcom 2003-09-04
  • 打赏
  • 举报
回复
Text1.Text获得的数据应该是字符串类型,不能进行比较,正像楼上的兄弟那样
必须进行数据的转换
另外,你的代码很不安全,缺少必要的验证处理
northwolves 2003-09-04
  • 打赏
  • 举报
回复
cdate()转换一下再比较试试

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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