sql-server - MS Access Date() 函数和 SQL Server 查询

标签 sql-server ms-access

我似乎无法找到常见情况的直接答案。我最近将 Access 数据库转换为 SQL Server,并且有链接表(odbc)。由于日期现在在 datetime2 中存储为 yyyy-mm-dd hh:mm:ss,因此我在 VBA 中将表单写入数据库没有问题,例如 Format(VBA.Date, "yyyy-mm -dd 00:00:00").

但是,我在 Access 中有一些简单的查询,其中包含一个 where 子句,例如:

Where Field = Date()

还有

Where Field Between Date() And Date()-7

从 Access 查询到 SQL Server 查询这些内容的正确方法是什么?

最佳答案

您的 Access 代码

Where Field = Date()

SQL Server

Where Field = CAST(GETDATE() AS DATE)

函数 GETDATE() 获取当前日期时间。

从今天到过去 7 天的日期

Where Field BETWEEN CAST(DATEADD(DAY, -7, GETDATE()) AS DATE) 
                     AND CAST(GETDATE() AS DATE)

我使用 CAST() 函数的原因是 GETDATE() 返回当前日期时间,如下所示 2014-02-09 22:09: 53.067

现在,如果您要检查 WHERE Field 包含今天日期的值,则只会检查值 where Field = '2014-02-09 22:09:53.067' 而不是 Date 的记录>2014-02-09 它还会考虑时间,因为我使用 CAST 函数来删除 GETDATE() 函数中的时间部分。

SELECT GETDATE()  Returns '2014-02-09 22:09:53.067'

SELECT CAST(GETDATE() AS DATE) Returns '2014-02-09'

我已经解决了您的查询问题,其中有很多问题:S我建议在线阅读书籍并学习 sql server 的正确语法,请参阅下面的固定查询

SELECT TransactionTotals.[Date]
    , TransactionTotals.EntryID
    , TransactionItems.ItemID
    , TransactionItems.ClientID
    , [FirstName] + ' ' + [LastName] AS Name
    , TransactionItems.[Service]
    , TransactionItems.Therapist
    , TransactionItems.GiftCertificate
    , TransactionItems.Charge
    , TransactionItems.Gratuity
    , TransactionTotals.Paid
    , TransactionItems.Comments 

FROM   CLIENTS INNER JOIN TransactionItems
ON     CLIENTS.ClientID = TransactionItems.ClientID 
INNER JOIN TransactionTotals
ON     TransactionTotals.EntryID = TransactionItems.EntryID
WHERE  TransactionTotals.[Date] = CAST(GETDATE() AS DATE) 
ORDER BY TransactionTotals.EntryID DESC;

关于sql-server - MS Access Date() 函数和 SQL Server 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21665577/

相关文章:

sql - SSIS:Excel 源代码 - 是否可以跟踪在 excel 中所做的更改?

sql-server - 如何将 GetDate() 转换为 "YYYY-MM-DD-HHMM"格式?

Python:为列和值设置参数 pypyodbc - executemany

ms-access - 如何通过 MS-Access VBA 中的 TextBox.OnKeyUp 属性传递 KeyCode

sql-server - SSRS 可以支持 Multi-Tenancy 使用吗?

sql-server - 为什么 SQL Server 数据工具使用的 VS 2010 shell 上的工具箱是空的?

javascript - 尝试使用 javascript 连接 Access 数据库

shell - VBA:如何从 MS Access 运行另一个应用程序

sql - 使用 NOT LIKE 在 Access 中查询

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