如果月份不同,则比较日期不起作用

Nic*_*zel 1 sql access-vba

我正在尝试比较访问数据库中的4个日期字段,并将最新值和adatum之间的日期差异设置为parkdauer.它适用于同一月份日期的任何行.

strSQL = "UPDATE Steuerungsboard 
          SET parkdauer = DateDiff('d', [kspausgang], [adatum]) 
          WHERE FORMAT(kspausgang, 'dd/MM/yyyy') >= FORMAT( iausgang, 'dd/MM/yyyy') 
             And FORMAT( kspausgang, 'dd/MM/yyyy') >= FORMAT( aausgang, 'dd/MM/yyyy') 
             And FORMAT( kspausgang, 'dd/MM/yyyy') >= FORMAT( gausgang, 'dd/MM/yyyy');"
CurrentDb.Execute strSQL, FailonError
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助!

Eri*_*k A 5

只需删除所有这些FORMAT东西,这将运行正常.

FORMAT的问题在于你实际上是按字母顺序比较日期,而且出于多种原因这是错误的.

"UPDATE Steuerungsboard 
          SET parkdauer = DateDiff('d', [kspausgang], [adatum]) 
          WHERE kspausgang >=  Nz(iausgang) 
             And  kspausgang >=  Nz(aausgang) 
             And  kspausgang >=  Nz(gausgang);"
Run Code Online (Sandbox Code Playgroud)