有这样的一个问题:看看大家是怎么处理的。
    我一张表里面有三个字段:
    主键,开始时间,结束时间。
    我现在要判断的是:如果开始时间在假期内,就算做假期开始头天。例如:
    开始时间为 2009-08-01 09:00:00 (为周六)
    则修改为  2009-07-31 00:00:00   (周五晚上)
现在的问题是:怎么建立那张假期表。我的想法是:
假期表:(主键,假期开始时间,假期结束时间)
然后判断每个时间是否在假期结束和假期结束时间内,如果在的话,就去假期开始时间。不在的话就保持原值。
给位有没有其他的更好的意见。谢谢!

解决方案 »

  1.   

    纯周六日假期的话可以用
    select to_char(sysdate,'day') from dual
    有其他新年啥的,只能人手做假期表了
      

  2.   

    你假期表应该有start_date,end_date吧?
    如果落入了假期的日期,你就直接end_date+1,然后再判断新的日期是不是落入假期中,如果是就继续在新假期里用end_date+1,如果不是,那就是work_date了
      

  3.   

    那主要看你的假期表的设计叻, 假期表可以用start, end,也可以start,duration,或者duration都是1, 每个连续的假期是多个记录。或者是加上type,混合设计。 根据你的假期表的设计来选择叻。 也可以使用function封装假期计算的方式。http://topic.csdn.net/u/20090728/21/3a4c5c65-d3b2-435e-a621-41641baa4fdd.html?84770