访问查询公式来计算上周二的日期
问题描述:
不确定从哪里开始。我有一个交货日期,我需要获得上个星期二的日期(除非日期是星期二,在这种情况下,我使用该日期)。我这样做是作为Access查询中的公式,而不是vba。访问查询公式来计算上周二的日期
答
函数Weekday(DelDate,3)
将返回您离开星期二(上述公式中的3表示星期二为星期几开始)的天数。如果您从交货日期扣除上述(并加1),那么它应该在前一个星期二降落。
答
您可以使用IIF
,这是Access在正常SQL中不直观的等效CASE
。请参阅参考https://msdn.microsoft.com/en-us/library/hh213574.aspx
这段代码首先检查日期是周二,然后如果不计回,直到它找到一个星期二:
SELECT
IIF
(format(yourdatevar, "dddd") = 'Tuesday'
,yourdatevar
,IIF(format(yourdatevar - 1, "dddd") = 'Tuesday'
,yourdatevar -1
,IIF(format(yourdatevar - 2, "dddd") = 'Tuesday'
,yourdatevar-2
,IIF(format(yourdatevar - 3, "dddd") = 'Tuesday'
,yourdatevar-3
,IIF(format(yourdatevar - 4, "dddd") = 'Tuesday'
,yourdatevar-4
,IIF(format(yourdatevar - 5, "dddd") = 'Tuesday'
,yourdatevar-5
,IIF(format(yourdatevar - 6, "dddd") = 'Tuesday'
,yourdatevar-6,null
))))))) as Delivery_date
FROM yourtbl
或只使用4(星期三),忘了添加1〜公式。 – geeFlo
使用星期三并添加IF语句以使用当前交付日期(如果= 7)。像魅力一样工作。 –