【发布时间】:2010-10-14 23:47:08
【问题描述】:
我有一个系统,它定义了天的重复模式。每个模式都有一个基准日期(通常是几年前,即创建该模式的时间)和一个天数(循环),因此例如它可能定义一个为期 7 天的模式:
表格:模式
ID | BaseDate | DayCount
-----------------------------
1 | 01/02/2005 | 7
表格:PatternDetail
PID | Offset | Detail
----------------------
1 | 0 | A
1 | 1 | B
1 | 2 | B
1 | 3 | C
etc.
(详细信息列是特定于域的,不相关。)
我想要做的是,给定一个日期(比如今天),在 PatternDetail 表中为给定的工作模式计算出正确的偏移量。在伪代码中我会这样做:
offset = ((today.InDays) - (Pattern.BaseDate.InDays)) % (Pattern.DayCount)
如何在 SQL 中执行此操作(需要在 MSSQL Server 和 Oracle 中工作)?换句话说,我如何计算两个日期之间的天数并取这个差的模数?
【问题讨论】:
标签: sql sql-server oracle date