2014年第一周显示为2013年

dan*_*ige 0 sql ms-access

我整个星期一直试图弄清楚为什么2014年第一周显示为2013-01或2013-53而不是2014-01.没有使用访问几年所以我有点生疏,我以前从未注意到这个问题,但现在我的计算都错了.我通过使用格式o代替Y来轻松地在PHP中更正此问题.

我目前使用的代码是:FORMAT(BI.date,"yyyy-ww") AS YearWeek.尝试设置功能的可选参数(firstdayofweek,firstweekofyear)但没有变化.也试过DatePart但没有运气.

Gor*_*son 5

您的问题没有提供足够的细节来引出具体的答案,但听起来您错误地使用了Format()您引用的陈述.VBA测试代码

Sub WeekTest()
   Dim bi_Date As Date, i As Long
   bi_Date = DateSerial(2013, 12, 30)
   For i = 1 To 5
      Debug.Print Format(bi_Date, "yyyy-mm-dd") & "  " & Format(bi_Date, "yyyy-ww")
      bi_Date = DateAdd("d", 1, bi_Date)
   Next
End Sub
Run Code Online (Sandbox Code Playgroud)

产生以下结果

2013-12-30  2013-53
2013-12-31  2013-53
2014-01-01  2014-1
2014-01-02  2014-1
2014-01-03  2014-1
Run Code Online (Sandbox Code Playgroud)

这表明Format(bi_Date, "yyyy-ww")如果相关日期实际上是 2014年,则VBA 调用在2013年不会产生值.