关于上一个问题的解答。

旧唱片zxy 旧唱片zxy 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我的上一个问题:
在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'转化成时间类型就可以了。
...全文

相关推荐

评论
收藏 已收藏
分享
返回顶部
旧唱片zxy
C# 111,128 成员 642,536 内容