Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VB/SQL server:_Sql_Sql Server_Excel_Vba_Date - Fatal编程技术网

Excel VB/SQL server:

Excel VB/SQL server:,sql,sql-server,excel,vba,date,Sql,Sql Server,Excel,Vba,Date,所以我相信这应该是一个简单的问题 我有一个标准的SQL datetime列,我想抓取过去24小时的所有条目,最好是使用excel中的vba,我把问题简化到了最后几天,试图更好地了解如何解决这个问题,但不知道如何继续 基本上:如果我在sql语句的中间部分手动输入日期,VBA将接受,但不接受带有日期的变量 在sql的标准Datetime列中,vba似乎正在将声明为日期的字段格式化为mm/dd/yyyy,而不是yyyy/mm/dd,这可能就是问题所在!我一直在玩convert命令,但没有用。但是,如果

所以我相信这应该是一个简单的问题

我有一个标准的SQL datetime列,我想抓取过去24小时的所有条目,最好是使用excel中的vba,我把问题简化到了最后几天,试图更好地了解如何解决这个问题,但不知道如何继续

基本上:如果我在sql语句的中间部分手动输入日期,VBA将接受,但不接受带有日期的变量

在sql的标准Datetime列中,vba似乎正在将声明为日期的字段格式化为mm/dd/yyyy,而不是yyyy/mm/dd,这可能就是问题所在!我一直在玩convert命令,但没有用。但是,如果我手动将格式正确的日期输入到变量值中,它确实有效

代码如下:

Dim DateVar As Date
Dim DateStart As Date
Dim DateEnd As Date
DateVar = Range("A2").Value
DateStart = DateVar - 1
DateEnd = DateVar + 1

   adoDbConn.Open **CONNECTION STRING GOES HERE**

selectCmd.ActiveConnection = adoDbConn
   selectCmd.CommandText = "SELECT DateTime, Machine_Number, FROM [33_TestImport] 
Where Machine_Number = " & Machvar & " 
AND DateTime BETWEEN " & DateVar & " AND " & DateEnd &  
ORDER By DateTime  "

将SQL中的变量更改为字符串,并将其格式化为YYYY-MM-DD

子演示 Dim sConStr作为字符串,myDb作为对象,rs作为对象 Dim SQL作为字符串,DateYMD作为字符串,机器作为字符串 sConStr=-connection字符串- DateYMD=FormatRangeA2.值,YYYY-MM-DD 机器=123 SQL=从[33\u TestImport]和中选择日期时间、机器编号_ 其中机器编号=&Machine&_ 和DATEDIFFminute,DateTime,'&DateYMD&'>=0&_ 和DATEDIFFminute、DateTime、'DateYMD&'<1440'24小时 调试.打印SQL 设置myDb=CreateObjectADODB.Connection myDb.opensconstr 设置rs=myDb.ExecuteSQL RangeA3.CopyFromRecordset rs myDb,关闭 端接头
将SQL中的变量更改为字符串,并将其格式化为YYYY-MM-DD

子演示 Dim sConStr作为字符串,myDb作为对象,rs作为对象 Dim SQL作为字符串,DateYMD作为字符串,机器作为字符串 sConStr=-connection字符串- DateYMD=FormatRangeA2.值,YYYY-MM-DD 机器=123 SQL=从[33\u TestImport]和中选择日期时间、机器编号_ 其中机器编号=&Machine&_ 和DATEDIFFminute,DateTime,'&DateYMD&'>=0&_ 和DATEDIFFminute、DateTime、'DateYMD&'<1440'24小时 调试.打印SQL 设置myDb=CreateObjectADODB.Connection myDb.opensconstr 设置rs=myDb.ExecuteSQL RangeA3.CopyFromRecordset rs myDb,关闭 端接头
这里不应该有逗号;机器编号,这里不应该有逗号;机器编号,从