【问题标题】:SQL - Adding a Column to Database Table with the Date of the SQL Script RunSQL - 使用 SQL 脚本运行的日期向数据库表添加列
【发布时间】:2016-12-21 10:48:51
【问题描述】:

我来自 R 编程背景,但现在需要每周学习 SQL 以实现 CSV 的自动化。我目前在 SQL 模式下使用 Microsoft Access 2010。

我希望提取现有表并应用过滤器(如下所示),然后向其中添加一个名为“Report_Date”的新列,显示脚本运行的日期。

我目前的代码如下:

SELECT Activity_Report.* INTO [Weekly Report]
FROM Activity_Report
WHERE ((([Activity_Report].[on_date])<DateAdd('m',3,Now()) 
And ([Activity_Report].[on_date])>DateAdd('m',-1,Now())))
ALTER TABLE Weekly_Report
ADD Report DATE;

在 ALTER TABLE 函数和过滤成功之前,这一切正常。我现在在运行上面的 SQL 脚本时收到以下错误:

查询表达式中的语法错误(缺少运算符)。

我不熟悉此错误,因此非常感谢任何有关我的代码出错的地方的帮助。谢谢

【问题讨论】:

  • 可能是; 之前的alter 查询

标签: sql sql-server date ms-access calculated-columns


【解决方案1】:

假设您知道insert intoselect into 之间的区别,则根本不需要alter table 语句。

您可以简单地将当前日期和时间添加为select 的一部分:

SELECT Activity_Report.*
      ,Now() AS Report
INTO [Weekly Report]
FROM Activity_Report
WHERE [Activity_Report].[on_date] < DateAdd('m',3,Now())
    AND [Activity_Report].[on_date] > DateAdd('m',-1,Now())

(我还去掉了很多 Access 非常喜欢的不必要的括号......)

【讨论】:

  • 那就更好了。 :)
  • 谢谢,太好了!
【解决方案2】:

您不能在 Access 的一个查询中运行两个命令。

首先运行 SELECT INTO 查询。

然后运行 ​​DDL 查询。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-30
    • 2019-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多