使用ASP和MySQL按日期查询

使用ASP和MySQL按日期查询,mysql,asp.net,Mysql,Asp.net,我需要在MySQL数据库中进行查询,返回当前日期的记录 我找到了下面的命令,它在MySQL中运行得非常好: SELECT * FROM TBAvaliacoes WHERE DataHora = (Date_Format(Now(),'%Y-%m-%d')) 但当我在ASP中执行此操作时,它会返回以下错误: 看看我在做什么: ' ## LISTA RAMAIS Set cmdListaAvaliacoes = Server.CreateObject("ADODB.Command") cmd

我需要在MySQL数据库中进行查询,返回当前日期的记录

我找到了下面的命令,它在MySQL中运行得非常好:

SELECT * FROM TBAvaliacoes WHERE DataHora = (Date_Format(Now(),'%Y-%m-%d'))

但当我在ASP中执行此操作时,它会返回以下错误:

看看我在做什么:

' ## LISTA RAMAIS
Set cmdListaAvaliacoes = Server.CreateObject("ADODB.Command")
cmdListaAvaliacoes.ActiveConnection = conn
cmdListaAvaliacoes.CommandText = "SELECT * FROM TBAvaliacoes WHERE DataHora = (Date_Format("&Now()&",'%Y-%m-%d'))"
response.write cmdListaAvaliacoes.CommandText
cmdListaAvaliacoes.CommandType = 1
Set rsListaAvaliacoes = Server.CreateObject("ADODB.Recordset")
rsListaAvaliacoes.Open cmdListaAvaliacoes, , 3, 3
如果我用单引号括起Now(),它不会给出错误,但不会返回任何内容

有人知道怎么避开这件事吗

等待,

如果要调用MySql定义的函数,则不应使用VB.NET函数并将其输出连接到sql。只需按照您在MySql工作台中编写代码的方式编写代码

cmdListaAvaliacoes.CommandText = "SELECT * FROM TBAvaliacoes 
                                  WHERE DataHora = (Date_Format(Now(),'%Y-%m-%d'))"
如果您想要传递一个特定的日期,那么您需要按照MySql的预期格式化日期

Dim myDate As DateTime = new DateTime(2019,8,10)

cmdListaAvaliacoes.CommandText = "SELECT * FROM TBAvaliacoes 
                                  WHERE DataHora = '" & myDate.ToString("yyyy-MM-dd") & "'"
但在这种情况下,更好的方法是使用参数(即使您完全控制日期)

旁注

从上次使用ADODB到现在已经过去了很多时间。所以参数解就是我记忆中的。在网上搜索更完整的示例

我使用的是经典ASP。对不起,以前不要这么说。有人能帮我吗?答案更新了一个例子,包括MySql期望的格式化字符串和参数
Dim myDate As DateTime = new DateTime(2019,8,10)
cmdListaAvaliacoes.CommandText = "SELECT * FROM TBAvaliacoes 
                                  WHERE DataHora = @dat"
Dim prm = cmdListaAvaliacoes.CreateParameter("@dat", adDBDate, adParamInput)
prm.Value = myDate
cmdListaAvaliacoes.parameters.Append prm