2013-02-01 42 views
1

我在MS Access 2000中的查询出现问题。我需要按数据库中的当前日期进行选择。我把功能date()now,它不起作用。 这里是我的查询:MS Access中的查询

SELECT  TOP 100 PERCENT dbo.КАРНЕТ.НомКарнета, dbo.ФИРМА.НаимПредпр 
FROM   dbo.ФИРМА INNER JOIN 
        dbo.КАРНЕТ ON dbo.ФИРМА.КодПредпр = dbo.КАРНЕТ.КодПредпр 
    WHERE  (dbo.КАРНЕТ.ДтСдачи = CONVERT(DATE, 'DATE()', 102)) 
    GROUP BY dbo.КАРНЕТ.НомКарнета, dbo.ФИРМА.НаимПредпр; 
+0

什么意思它不起作用?你有空的结果,或者你有错误信息? – veljasije

+0

空的结果...... – Sergio

+0

是什么''中YYYYMMDD HHMMSS'dbo.КАРНЕТ.ДтСдачи'格式 – Justin

回答

4

您应该能够使用Date()而不单引号:

WHERE dbo.КАРНЕТ.ДтСдачи = Date() 

Date()函数将返回当前系统日期。

如果您dbo.КАРНЕТ.ДтСдачи已经包含在里面的时候,那么你可能需要格式化,你也可以格式化Date()值相同:

WHERE Format(dbo.КАРНЕТ.ДтСдачи, "yyyy.mm.dd") = Format(Date(), "yyyy.mm.dd") 

注:我只是测试上面的线在MS Access它返回记录。该代码应该是相同的MS Access 2000.

+0

你的第二条款绝对是最好的,以消除两者的时间,以防万一!+1 – glh

2

试试这个:

SELECT FORMAT(DATE(),'DD.MM.YYYY') 

结果在MS Access:

01.02.2013 
+0

不工作,.. :( – Sergio

2
  1. 尝试使用now()today()date()不带引号

  2. 您可能没有那一天的数据。

  3. 你比较它date()功能之前,你的领域也转换为日期格式不受时间,convert(...)format()

0

您可以格式化日期的任何方式。

格式(#17/04/2004#, “短日期”) 结果:'17/04/2004'

格式(#17/04/2004#, “长日期”) 结果: '2004年4月17日'

格式(#17/04/2004#, “YYYY/MM/DD”) 结果:? '2004年4月17日'

Sub Createdate() 
myDate = Format(Date, "Short Date") 
End Sub 

数值指明MyDate 12/29/2016