在MS Access中查询

时间:2013-02-01 10:12:53

标签: sql ms-access

我的MS Access 2000中的查询有问题。我需要按数据库中的当前日期进行选择。我放置了函数date()now,但它不起作用。 这是我的疑问:

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

4 个答案:

答案 0 :(得分:4)

如果没有单引号,您应该可以使用Date()

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

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

如果您的dbo.КАРНЕТ.ДтСдачи包含时间,那么您可能需要对其进行格式设置,并且您还可以将Date()值格式设置为相同:

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

注意:我刚刚在MS Access 2003中测试了上述行并返回了记录。 MS Access 2000的代码应该相同。

答案 1 :(得分:2)

试试这个:

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

MS Access中的结果:

01.02.2013

答案 2 :(得分:2)

  1. 尝试使用now()today()date() ,不加引号

  2. 当天您可能没有数据。

  3. 在将您的字段与convert(...)函数进行比较之前,还要将您的字段转换为没有时间的日期格式format()date()

答案 3 :(得分:0)

您可以通过多种方式设置日期格式。

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

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

格式(#17/04/2004#," yyyy / mm / dd") 结果:' 2004/04 / 17'

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

?数值指明MyDate 2016年12月29日