访问SQL查询帮助
问题描述:
我有一个查询中,我需要使用下列三个实体来执行:访问SQL查询帮助
- LU_AppName
- SDB_AppHistory
- SDB_Session
LU_AppName有字段APPNAM,SDB_AppHistory具有日期/时间字段STARTTIME,并且SDB_Session具有字段DURATION字段。
我需要运行SQL查询以向我显示Citrix应用程序,这些应用程序在过去6个月内未使用过。
目前我的代码如下。
SELECT dbo_LU_APPNAME.APPNAME, dbo_SDB_APPHISTORY.STARTTIME
FROM dbo_LU_APPNAME INNER JOIN dbo_SDB_APPHISTORY ON dbo_LU_APPNAME.PK_APPNAMEID = dbo_SDB_APPHISTORY.FK_APPNAMEID
WHERE (((dbo_LU_APPNAME.APPNAME) Like "* Citrix") AND ((dbo_SDB_APPHISTORY.STARTTIME) Between DateAdd("d",-180, Getdate())))
我有点困惑,因为我不是很好的SQL
谁能请咨询,如果你需要更多信息,请让我知道。
谢谢,任何帮助将是伟大的。
答
那么你就错过的BETWEEN子句1/2 ...
AND((dbo_SDB_APPHISTORY.STARTTIME)GETDATE()和使用DateAdd( “d” 之间, - 180,GETDATE())
答
您可以使用日期(),而不是GETDATE:
DateAdd("d",-180, Date())
日期()是相当满意:
Date()-180
使用DateAdd将接受“M”,如果你想考虑个月:
DateAdd("m",-6, Date())
当心日期格式和语言环境。
GETDATE()似乎无法在ACCESS 2007 SQL视图中识别NOW()似乎很好。 任何替代方案 – MalsiaPro 2010-02-09 15:35:13
Access/Jet/ACE函数是Date()。 – 2010-02-09 22:25:17
我认为OP有正确的功能,我只是指出他错过了BETWEEN的其余条件...... 所以它会是: AND((dbo_SDB_APPHISTORY.STARTTIME)Date和Date之间()-180) – Leslie 2010-02-10 14:58:52