关于上一个问题的解答。

旧唱片zxy 2003-12-09 05:50:23
我的上一个问题:
在C#下开发一个基于windows窗体的应用程序,数据库是远程 MySQL,我用 ODBC for MySQL(MySQL 站点有下载) 发现一个小Bug,是不是大家听我细说来:

我在C#里用 OdbcConnection 连接ODBC数据库源,执行一个SQL语句,类似于下面的语句:
select * from table1 where f1='0' and year(f2)=2003 and month(f3)=12 and dayofmonth(f2)<=15 and date_add(f2,INTERVAL 72 Hour)<='2003-12-08 16:49:16' order by f2

发现ODBC在执行此语句时没有理会"and year(f2)=2003 and month(f3)=12 "以及以后的条件判断语句,选出了所有 f1='0'的结果,而同样的语句放在PHP里执行,选取出来的结果是正确的。按理说应该不存在SQL语句错误的问题,year(),month(),dayofmonth(),date_add()都属于mysql的函数,不会在ODBC里存在不认识的情况吧?
送的分不多,但很有讨论性的问题。大家都来啊。

经过查阅Mysql手册得到解决办法:

不知道这算不算一个BUG,同样的语句在PHP里可以正确解释。但在C#里date_add(f2,INTERVAL 72 Hour)<='2003-12-08 16:49:16' 这样比较是无法识别的,但在mysql command line 里是可以被认可的,把'2003-12-08 16:49:16'转化成时间类型就可以了。
...全文
66 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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