语句中的连接日期

时间:2016-01-08 14:29:20

标签: vba vb6

我需要将此语句与日期变量

连接起来
Dia = Date

"SELECT dia, amanha, tarde, noite FROM TB_teste where dia = " & dia & ", cnnMysql, adOpenForwardOnly, adLockReadOnly"

此语句用于mysql数据库

 select * from tb_teste where dia like '2016-01-08'  

这里有什么问题?

2 个答案:

答案 0 :(得分:2)

就是不要这样做。

忽略动态生成的SQL到SQL注入攻击(有意和无意)的漏洞,您还会遇到这些特定于提供程序的值文字格式问题。只需使用参数查询。

Set RS = New ADODB.Recordset
With RS
    .CursorLocation = adUseClient
    .CursorType = adOpenForwardOnly
    .LockType = adLockReadOnly
End With
With New ADODB.Command
    .CommandType = adCmdText
    .CommandText = "SELECT dia, amanha, tarde, noite FROM TB_teste " _
                 & "where dia = ?"
    .Name = "TestesQuery"
    .ActiveConnection = cnnMysql
    cnnMysql.TestesQuery Date, RS
End With

您的命名TestesQuery成为Connection对象的扩展属性,可以这样执行。以这种方式调用的返回行的查询期望最后一个参数是设置为接收行集的Recordset。其他参数是您的匿名查询参数,按SQL字符串中的定义顺序处理。

您可以按名称以相同方式执行存储过程。

答案 1 :(得分:0)

您可以使用Format()功能以您希望的格式在字符串中转换日期。

stringDate = Format(Dia, "dd/mm/yyyy hh:mm")

然后,您可以将stringDate连接到您需要的地方