BCB连接MySQL,日期查询出错

cnbuffer 2015-09-06 10:17:25
最近在学习MYSQL数据库,将原来的ACCESS数据库程序转为MYSQL的,发现一个问题,原来用ACCESS连接正常的语句,换成MYSQL就出错了。
原连ACCESS语句
mysql="SELECT * from mixinf left join record on mixinf.gid = record.gid where pdt between #" + dStartDate +"# and #" + dEndDate+ "# ORDER BY PID" ;


现连MYSQL语句
mysql="SELECT * from mixinf a left join record b on a.gid = b.gid where pdt between " + dStartDate +" and " + dEndDate+ " ORDER BY PID" ;


dStartDate、dEndDate相关程序为
 TDateTime dStartDates,dEndDates , dStartDate,dEndDate;

dStartDates=DateTimePicker1->DateTime ;
dEndDates=DateTimePicker2->DateTime + 1;

dStartDate = FormatDateTime("YYYY-MM-DD",dStartDates);
dEndDate = FormatDateTime("YYYY-MM-DD",dEndDates);


查询结果是查不到任何数据,如果查询小于dStartDate的数据,
mysql="SELECT * from mixinf a left join record b on a.gid = b.gid where date(pdt) > " + dStartDate  +"  ORDER BY PID" ;

则把数据库中的所有记录都查询出来了,我认为应该是dStartDate的格式不对,数据库中"pdt"为DateTime格式,形如"2014-01-13 09:12:38” .可是奇怪的是,我在PHPMYADMIN中管理MYSQL,用同样的语句查询却是正常的。
MYSQL中直接查询语句
SELECT * from ”mixinf” a left join “record” b on a.gid = b.gid where pdt < '2014-01-13' ORDER BY PID


问题出在哪里呢?怎么改,头都大了。
...全文
83 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
cnbuffer 2015-09-06
  • 打赏
  • 举报
回复
引用 1 楼 ccrun 的回复:
mysql = "SELECT * from mixinf a left join record b on a.gid = b.gid where pdt between '"
         + dStartDate +"' and '" + dEndDate+ "' ORDER BY PID" ;
长远来看,要注意SQL注入问题。
刚才自已找到原因了,又是低级错误。感谢妖哥这么快回复!
ccrun.com 2015-09-06
  • 打赏
  • 举报
回复
mysql = "SELECT * from mixinf a left join record b on a.gid = b.gid where pdt between '"
         + dStartDate +"' and '" + dEndDate+ "' ORDER BY PID" ;
长远来看,要注意SQL注入问题。

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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