【发布时间】:2017-04-23 20:43:29
【问题描述】:
我正在使用下面的访问查询进行一些计算。因为服务器位于欧洲,而应用程序的用户在美国,所以相差 6 小时。在下面的命令中,我可以如何适应这个吗?这样在运行命令时它会以某种方式将 datediff 减去 6 小时?
Days Waiting : IIf([Datereceivedunit] Is Null,0,IIf([QuoteFrom] Is Null,DateDiff("d",[Datereceivedunit],Date())-(DateDiff("ww",[Datereceivedunit],Date())*2),0))
【问题讨论】:
-
作为一般做法,但特别是如果系统组件位于多个时区,则应始终将 UTC 日期时间存储在数据库中,并且仅根据需要转换为本地时间以在用户界面中显示。这也解决了夏令时问题。
-
我会将 dateadd -6 小时放在查询的哪个位置?
-
提示:
"h"而不是"d"。 -
此查询返回天数,因此更改为“h”会导致查询错误?
-
如果
[Datereceivedunit]和[QuoteFrom]不包含时间部分,减去 6 小时(从哪个小时?)只会在当前结果中添加或减去零或一天。如果您从当天的差异中添加或减去 6 小时,这将始终偏移 6 小时。这两个结果似乎都不合适,因此您需要提供更多详细信息。