我使用 DATE 的主表来查找日期和其他值,以便控制我的应用程序中的多个事件、间隔和计算。它包含从 01/01/1990 到 12/31/2041 之间每一天的行。
我如何使用此查找表的一个示例是:
- 一位顾客典当了一件物品:JAN-31-2010
- 客户于 2010 年 5 月 3 日返回并支付利息,以避免物品被没收。
- 如果他支付 1 个月的利息,员工输入“1”,应用程序就会查找典当
日期主表中的日期 (JAN-31-2010) 并将 FEB-28-2010 放入适用的利息中
皮姆特日期。 FEB-28 被返回,因为 FEB-31 不存在!如果2010年是闰年的话
会在 2 月 29 日返回。
- 如果客户支付 2 个月,则退回 MAR-31-2010。 3 个月,APR-30...如果客户
支付超过 3 个月或日期查找表未涵盖的其他期间,
员工手动输入适用日期。
日期查找表如下所示:
{ Copyright 1990:2010, Frank Computer, Inc. }
{ DBDATE=YMD4- (correctly sorted for faster lookup) }
CREATE TABLE datemast
(
dm_lookup DATE, {lookup col used for obtaining values below}
dm_workday CHAR(2), {NULL=Normal Working Date,}
{NW=National Holiday(Working Date),}
{NN=National Holiday(Non-Working Date),}
{NH=National Holiday(Half-Day Working Date),}
{CN=Company Proclamated(Non-Working Date),}
{CH=Company Proclamated(Half-Day Working Date)}
{several other columns omitted}
dm_description CHAR(30), {NULL, holiday description or any comments}
dm_day_num SMALLINT, {number of elapsed days since begining of year}
dm_days_left SMALLINT, (number of remaining days until end of year}
dm_plus1_mth DATE, {plus 1 month from lookup date}
dm_plus2_mth DATE, {plus 2 months from lookup date}
dm_plus3_mth DATE, {plus 3 months from lookup date}
dm_fy_begins DATE, {fiscal year begins on for lookup date}
dm_fy_ends DATE, {fiscal year ends on for lookup date}
dm_qtr_begins DATE, {quarter begins on for lookup date}
dm_qtr_ends DATE, {quarter ends on for lookup date}
dm_mth_begins DATE, {month begins on for lookup date}
dm_mth_ends DATE, {month ends on for lookup date}
dm_wk_begins DATE, {week begins on for lookup date}
dm_wk_ends DATE, {week ends on for lookup date}
{several other columns omitted}
)
IN "S:\PAWNSHOP.DBS\DATEMAST";
有没有更好的方法或者这是一个很酷的方法?