【问题标题】:MS Access Date() Function and SQL Server QueryMS Access Date() 函数和 SQL Server 查询
【发布时间】:2018-12-30 02:25:31
【问题描述】:

对于看似常见的情况,我似乎找不到直接的答案。我最近将访问数据库转换为 SQL Server,并具有链接表 (odbc)。由于日期现在以 yyyy-mm-dd hh:mm:ss 的形式存储在 datetime2 中,因此我在 VBA 中让我的表单像 Format(VBA.Date, "yyyy-mm-dd 00:00:00") 这样写入数据库没有问题。

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

Where Field = Date()

还有

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

从 Access 查询到 SQL 服务器的正确方法是什么?

【问题讨论】:

标签: sql-server ms-access


【解决方案1】:

您的访问代码

Where Field = Date()

Sql 服务器

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 字段具有今天的日期,它将只有值 where Field = '2014-02-09 22:09:53.067' 而不是日期 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;

【讨论】:

  • WHERE TransactionTotals.Date=CAST(GETDATE() AS DATE) 获取“语法错误(缺少运算符)
  • @user1457613 在您的问题中发布完整的查询。
  • 您的这一点查询是正确的,您在其他地方还缺少其他东西
  • 好吧,它是唯一被改变的行但是:
  • 选择 TransactionTotals.Date、TransactionTotals.EntryID、TransactionItems.ItemID、TransactionItems.ClientID、([FirstName] & "" & [LastName]) AS 名称、TransactionItems.Service、TransactionItems.Therapist、TransactionItems。 GiftCertificate、TransactionItems.Charge、TransactionItems.Gratuity、TransactionTotals.Paid、TransactionItems.Comments 来自客户内部联接(TransactionTotals INNER JOIN TransactionItems ON TransactionTotals.EntryID = TransactionItems.EntryID)ON CLIENTS.ClientID = TransactionItems.ClientID
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多