我有一个名为“日期”的 Access 表,并且有一个名为“日期”的单列(格式为“日期”)。我需要将 1980 年 1 月 1 日到今天的日期在列中每次增加 1 天。 1980-01-01 将位于第一行。
如何通过 sql 查询来完成此操作?
最佳答案
如果您有合适的数字表,则可以使用 Access SQL 添加这些日期。
INSERT INTO dates ([Date])
SELECT CDate(n.the_number)
FROM tblNumbers AS n
WHERE n.the_number BETWEEN 29221 AND 42037;
或者从tblNumbers中的1开始并添加偏移量...
INSERT INTO dates ([Date])
SELECT CDate(n.the_number + 29220)
FROM tblNumbers AS n
WHERE n.the_number BETWEEN 1 AND 12817;
但是,如果您没有合适的数字表,则需要创建一个并填充它。这与您开始时的问题类似,仅加载普通数字而不是日期。
最初的任务非常简单,我将使用一次性的 VBA 过程而不是 Access SQL。这个加载我的日期表的时间不到 2 秒,其中包含所需的 12,817 个日期值:
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim dte As Date
Set db = CurrentDb
Set rs = db.OpenRecordset("dates", dbOpenTable, dbAppendOnly)
With rs
For dte = #1/1/1980# To Date
.AddNew
![Date].Value = dte
.Update
Next
.Close
End With
关于sql - 使用 sql 查询在 Access 中填充从 1980-01-01 到今天的日期列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28278115/