日期:2014-05-16  浏览次数:21127 次

access 时间函数应用问题
现在有一个table   里面有三个字段
date1     ,date2,newdate

说明:date1,date2中有时间数据,newdate中没有时间数据。现在要使用update语句实现这样的要求,首先比较date1,date2两个字段中的时间数据,取距离当前系统时间最近的那个时间数据,然后update到newdate中去

在ms   sql   server   2000中使用的

update   table   set   newdate=   case   abs(datediff(dd,getdate(),date1))> abs(datediff(dd,getdate(),date2))   then   date1   else   date2   end;

这样的语句在sql   server   2000   中可以正常运行。到了access中就提示没有   case   then     这样的语法,同时也提示没有getdate()这样的时间函数,因为没有使用过access这样的桌面小型数据库,不知道如何解决,请知道的大虾指导一下,最好给出符合access语法规范的   sql   语句

------解决方案--------------------
case-> iif
getDATE-> NOW() OR DATE()
------解决方案--------------------
SQL Server中的case when 对应access中的iif()

SQL Server中的getdate() 对应access中的date()

改为如下:

update 表名 set
newdate= iif(abs(datediff( "d ",date(),date1))> abs(datediff( "d ",date(),date2)),date1,date2)