Firebird 3 中一周最后一天的日期
Date of last day of week in Firebird 3
这是 Firebird 3 中一周的第一天(星期一)的日期:
DATEADD(DAY, (EXTRACT(WEEKDAY FROM D - 1) * -1), D)
以及如何获取一周中最后一天(星期日)的日期?
在 Firebird 中:周一 = 1,周二 = 2,...周日 = 0。
对于 ISO-8601 周,星期一是一周的第一天,您还可以使用以下方法确定星期一:
dateadd(day, 0 - mod(extract(weekday FROM d) + 6, 7), d)
使用 mod(extract(weekdays from d) + 6, 7)
将使星期一为 0,星期二为 1,以此类推,星期日为 6,以便于计算。
然后您可以使用以下方法确定星期日:
dateadd(day, 6 - mod(extract(weekday FROM d) + 6, 7), d)
您可以通过这种方式轻松得出一周中的其他日期(例如,使用 1 - mod(extract(weekday FROM d) + 6, 7)
表示星期二,等等
另一方面,如果星期日是一周的第一天(例如在美国),您可以使用:
dateadd(day, 0 - extract(weekday from d), d)
周一
dateadd(day, 1 - extract(weekday from d), d)
这是 Firebird 3 中一周的第一天(星期一)的日期:
DATEADD(DAY, (EXTRACT(WEEKDAY FROM D - 1) * -1), D)
以及如何获取一周中最后一天(星期日)的日期?
在 Firebird 中:周一 = 1,周二 = 2,...周日 = 0。
对于 ISO-8601 周,星期一是一周的第一天,您还可以使用以下方法确定星期一:
dateadd(day, 0 - mod(extract(weekday FROM d) + 6, 7), d)
使用 mod(extract(weekdays from d) + 6, 7)
将使星期一为 0,星期二为 1,以此类推,星期日为 6,以便于计算。
然后您可以使用以下方法确定星期日:
dateadd(day, 6 - mod(extract(weekday FROM d) + 6, 7), d)
您可以通过这种方式轻松得出一周中的其他日期(例如,使用 1 - mod(extract(weekday FROM d) + 6, 7)
表示星期二,等等
另一方面,如果星期日是一周的第一天(例如在美国),您可以使用:
dateadd(day, 0 - extract(weekday from d), d)
周一
dateadd(day, 1 - extract(weekday from d), d)