我对 access/excel 等相当熟悉。但是,我经常查询数据库以获取信息,但却遇到了难题。它包含以 unix 时间格式跟踪的日期/时间字段(自 1970 年 1 月 1 日起的秒数)。
我的最终目标是让用户设置一个开始日期和结束日期,并将其作为变量传递给访问查询,以返回开始日期和结束日期之间的所有行。
现在我的解决方法是导入所有行并使用 Format 创建单独的列,并在本地将 unix 时间日期/时间格式化为一个可以轻松过滤的短日期。但是,正如预期的那样,这非常慢,因为查询必须导入外部数据库的所有行,然后在本地计算日期/时间字段,然后才能显示结果。
我知道必须有一种方法来将查询传递到外部数据库,但我只是不知道语法是什么样的(并且一旦弄清楚如何将临时变量插入到语法中)。
答案1
您只需将数字传递给查询即可。
将访问日期/时间值转换为 unix 纪元时间,DateDiff("s", DateSerial(1970, 1, 1), YourDate)
将为您提供所需的数字
SQLString = "SELECT * FROM YourTable WHERE Time < " & DateDiff("s", DateSerial(1970, 1, 1), YourDate)
希望这能让你了解如何创建所需的 SQL 语句