2014-02-09 94 views
2

我已将Access数据库(.mdb)转换为SQL Server。在此期间,我仍然需要使用Access作为前端,直到构建新的申请表。谁能告诉我我可以做什么来修复情况:MS Access SQL Server数据库 - CAST函数的查询语法

在Access 2007,查询如:

SELECT * 
FROM TransactionTotals 
WHERE TransactionTotals.[Date]= Date() 
ORDER BY TransactionTotals.EntryID DESC; 

工作,但是因为日期()函数将不会使用SQL Server,在以前的帖子帮助正确的语法是:

SELECT * 
FROM TransactionTotals 
WHERE TransactionTotals.[Date]= CAST(GETDATE() AS DATE) 
ORDER BY TransactionTotals.EntryID DESC; 

但是!虽然上面的代码可以在直接的SQL Server查询(SQL Management Studio)中工作,但是它将在Access中使用WHERE子句中的语法错误响应抛出。

在Access中可以做些什么,所以我仍然可以运行我的查询绑定表单。

回答

0

我通常做的就是你要做的,在迁移到SQL服务器之前先访问。 Access有一些很奇怪的语法相比,服务器类型数据库特别是当它涉及到JOIN条款和日期,GETDATE()只能在SQL Server上,在Access中,试试这个...

SELECT * 
FROM TransactionTotals 
WHERE TransactionTotals.[Date]= Format(NOW(),"General Date") 
ORDER BY TransactionTotals.EntryID DESC; 

随意改变日期的格式,有或没有时间。

+0

这可以从Acces再次运行SQL Server,如果: – user1457613

+0

这可以从Acces再次运行SQL Server:格式(NOW(),“yyyy-mm-dd 00:00:00”)。然而,什么可以在Access查询中工作,例如WHERE TransactionTotals。[Date] Between Date() - 7 AND Date() – user1457613

+0

Uhmmm,你能更详细地解释一下你需要什么吗?根据我的理解,您需要使用比较当前日期的条件来查询数据库,并且SQL Server上运行的SQL语句在Access上不起作用?你想找到一个适用于两者的功能吗? –