我的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.ФИРМА.НаимПредпр;
答案 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)
尝试使用now()
或today()
或date()
,不加引号。
当天您可能没有数据。
在将您的字段与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日