(1)表
CREATE TABLE logistics (
id int primary key,
Product VARCHAR(255),
insert_timestamp Date
);
INSERT INTO logistics
(id, product, insert_timestamp
)
VALUES
("1", "Product_A", "2020-02-24 18:15:48"),
("2", "Product_B", "2020-02-24 20:30:17"),
("3", "Product_C", "2020-02-24 23:54:58"),
("4", "Product_D", "2020-02-25 08:09:30"),
("5", "Product_E", "2020-02-25 10:17:15");
(2)中的VBA
值Cell B1 = 2020-02-24
Sub Get_Data()
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim dateVar As Date
Set conn = New ADODB.Connection
conn.ConnectionString = "DRIVER={MySQL ODBC 5.1 Driver}; SERVER=localhost; DATABASE=bi; UID=username; PWD=password; OPTION=3"
conn.Open
strSQL = " SELECT " & _
" cID " & _
" FROM logistics " & _
" WHERE DATE(insert_timestamp) BETWEEN """ & Format(Sheet1.Range("B1").Value, "YYYY-MM-DD") & "00:00:00" & """ " & _
" AND """ & Format(Sheet1.Range("B1").Value, "YYYY-MM-DD") & "23:59:59" & """ " & _
" GROUP BY 1 "
Set rs = New ADODB.Recordset
rs.Open strSQL, conn, adOpenStatic
Sheet1.Range("A1").CopyFromRecordset rs
rs.Close
conn.Close
End Sub
我想在子句中的语句中VBA
使用日期的Cell B1
内部运行查询。 当我在之外运行此查询时,它运行完美:BETWEEN``WHERE
VBA
SELECT
Product
FROM logistics
WHERE DATE(insert_timestamp) BETWEEN "2020-02-24 00:00:00" AND "2020-02-24 23:59:59";
一次,我在中运行它VBA
不会给我一个错误,但也不会给我任何结果。
我认为问题是由sql
和中的组合引起VBA
的strSQL
。
我必须如何更改VBA
才能使其正常工作?
您在日期和时间之间缺少空格…
打开VBE并调试打印公式以查看结果(制造商确保您具有立即窗口[视图菜单/立即窗口])。
Sub test()
Debug.Print Format(Sheet1.Range("B1").Value, "YYYY-MM-DD") & "23:59:59"
End Sub
结果 2020-03-1123:59:59
只需在DD之后添加空格即可,如下
Format(Sheet1.Range("B1").Value, "YYYY-MM-DD ") & "23:59:59"
问题内容: 最近我被告知,在SQL中使用该方法有些不可靠,因此我应该使用。但是,另一位程序员告诉我不是这种情况,只要日期格式正确,该方法就可以在所有情况下出色地工作。 请有人通过说明哪种方法更好以及为什么来解决这场辩论。 目前,我的日期范围SQL如下所示: 但是,如果可以确定它是可靠的,我宁愿这样写: 在这种情况下,我使用的是MsSQL,但是我已经标记了MySQL,因为我想知道这在这里是否也适用
问题内容: 我有一个很大的Excel工作表,看起来与此类似: 我要做的是创建一个新的动态生成的表格,其中显示了所有人员。 在SQL中,这将是同步:。我以前从未在excel中使用过VBA(我是一位经验丰富的PHP / Javascript程序员,并且已在MS Access中使用过VBA),所以我正在寻找初学者的指导以帮助我入门。也许有人可以推荐一个简单的教程或博客文章,其功能类似于我需要做的事情?
问题内容: 考虑以下两个表: 表A中的每条记录都精确映射到表B中的1条记录。这意味着表B没有重叠的时间段。表A中的许多记录可以映射到表B中的同一记录。 我需要一个返回所有A.id,B.id对的查询。就像是: 我正在使用MySQL,但无法优化此查询。表A中有约980条记录,表B中有130.000条记录,这是永远的事。我知道必须执行980个查询,但是在功能强大的计算机上花费超过15分钟的时间却很奇怪。
问题内容: 我想获取介于两个时间戳之间的记录。我想要使用hibernate模式。我尝试使用以下查询进行操作,但未获得任何输出 这是从控制台形成的SQL查询: 我的数据库具有T_ADM_TNM_UPDATE_DATETIME = 10/2/2012 5:10:40 PM的记录 但是结果集无法获取此查询…我不知道我哪里出错了。 谁能指导我进一步 问题答案: 您应该使用HQL参数而不是串联。 举个例
问题内容: 我们正在尝试为本地sql查询动态生成IN子句以返回JPA实体。Hibernate是我们的JPA提供程序。我们的代码看起来像这样。 这是行不通的,in子句无法识别通过这种方式传入的任何值。有谁知道解决这个问题的方法吗? 问题答案: 在您的情况下,JPA支持命名列表参数:
问题内容: 有没有一种方法可以使SQLAlchemy使用自定义列生成查询,该自定义列是与当前行相关的子查询: 使用ORM API? 我正在使用PostgreSQL 9.3和旧版本的SQLAlchemy 0.9.8 问题答案: 如果您经常需要这样做,并且/或者计数是模型不可或缺的一部分,则应该使用混合属性,如其他答案中所述。另一方面,如果只需要一个查询就可以使用,则可以使用或创建标量子查询: 子查询