Mysql 使用Sql语法按日期筛选数据

Mysql 使用Sql语法按日期筛选数据,mysql,sql,vb.net,Mysql,Sql,Vb.net,我想按日期将MySql数据库中的数据过滤到datagrid 我尝试了这段代码,但在datagrid中没有返回任何内容或空 "SELECT x1, x2, x3, xdate FROM data WHERE xdate='" & LblDate.Text.ToString & "'" 但如果我把过滤器换成x1、x2或x3,它也能工作 xdate列是格式为d/M/yyyy的日期 我尝试了这段代码,但是我的sql版本出现了错误 "SELECT x1, x2, x3, xdate

我想按日期将MySql数据库中的数据过滤到datagrid

我尝试了这段代码,但在datagrid中没有返回任何内容或空

"SELECT x1, x2, x3, xdate  FROM data WHERE xdate='" & LblDate.Text.ToString & "'"
但如果我把过滤器换成x1、x2或x3,它也能工作

xdate列是格式为d/M/yyyy的日期

我尝试了这段代码,但是我的sql版本出现了错误

"SELECT x1, x2, x3, xdate  FROM data WHERE xdate CONVERT(VARCHAR(10, xdate, 110))='" & LblDate.Text.ToString & "'"
错误

错误[42000][MySQL][ODBC 5.2(w)驱动程序][mysqld-5.5.25a]您有一个 SQL语法错误;检查与您的产品相对应的手册 MySQL服务器版本,以便在附近使用正确的语法 第1行的“CONVERT(VARCHAR(10,xdate,110))='3/4/2014'”

请帮忙……谢谢。

试试这个

"SELECT x1, x2, x3, xdate  FROM data 
WHERE DATE_FORMAT(xdate,'%d/%m/%Y')='" & LblDate.Text.ToString & "'

为什么不使用绑定变量呢?嗯。。。我从不使用绑定变量,你能告诉我如何使用那个方法吗?看看参数化查询。这样,您就可以将
DateTime
对象传递给查询,而无需根据MySQL区域性将其转换为具有有效格式的字符串,而且参数化查询可以避免SQL注入。哇。。我不知道它是怎么工作的。。。我只是将“%d/%m/%Y”更改为“%d/%m/%yyyy”。。谢谢