Now() 在 ODBC SQL 查询中?

Posted

技术标签:

【中文标题】Now() 在 ODBC SQL 查询中?【英文标题】:Now() In ODBC SQL Query? 【发布时间】:2010-05-24 20:50:32 【问题描述】:

我正在尝试将数据库字段更新为当前时间,但无法传递“now()”。我收到以下错误:

'`now`' is not a recognized built-in function name.

我用来查询数据库的方法如下:

Public Sub main()

    Dim cnn As ADODB.Connection
    Dim rst As ADODB.Recordset

    Set cnn = New ADODB.Connection
    Set rst = New ADODB.Recordset

    cnn.Open "ConnectionName"
    rst.ActiveConnection = cnn
    rst.CursorLocation = adUseServer

    rst.Source = "Update Table ..."
    rst.Open

    Set rst = Nothing
    Set cnn = Nothing
End Sub

【问题讨论】:

尝试 getdate() 而不是 now()。 Now() 是 mysql 函数,getdate() 在 TSQL (ms sql server) 中工作。 【参考方案1】:

Now() 是一个 VBA 函数。您想要做的是使用等效的 SQL 函数,但这取决于您要连接到的数据库。

如果您连接的是 SQL Server,请使用 GETDATE()(适用于当地时间)或 GETUTCDATE()(适用于 UTC 时间)。

【讨论】:

非常感谢,我试用了这个功能,它就像一个魅力。我来自 MySQL 背景,now() 是一个可用的函数。这就是我的困惑的来源。时间一到,我就会“接受”你的回答。快乐编码:)【参考方案2】:

试试 getdate() 函数或 CURRENT_TIMESTAMP

【讨论】:

这也不错。 CURRENT_TIMESTAMP 是 SQL 标准,SQL Server 不带括号就可以理解。

以上是关于Now() 在 ODBC SQL 查询中?的主要内容,如果未能解决你的问题,请参考以下文章

在 MS Access 2007 中对 ODBC 表导入 sql 查询

一次查询中的 Odbc 和 Sql 连接

Excel ODBC - SQL 查询

在 Access 中使用 ODBC 连接到 MS SQL Server 2012:手动调用查询和在 VBA 中调用查询之间的巨大时间差异

无法在 SQL 2019 Linux 上使用 PolyBase 通过 ODBC 查询 AS400

来自 ODBC Blob 的数据与来自 SQL 查询的返回不匹配