我想将sql server 2005 datetime字段中的默认值设置为今天+ 3个工作日。
答案 0 :(得分:6)
您需要将“默认值或绑定”设置为以下之一:
SELECT (dateadd(day,(3),getdate()))
SELECT (dateadd(day,(3),cast(floor(cast(getdate() as float)) as datetime)))
第一个将为您提供今天的日期和时间并准确地添加3天(因此您也将获得时间值)。
第二个会给你今天的日期,时间值为00:00:00(即午夜),并准确地添加3天。
修改强>
啊,我看到你说“工作日”了。好吧,我的例子将给你3个按时间顺序天,但计算3个工作日将是非常困难的,因为“工作日”的定义可能有点含糊不清。例如,我将假设“工作日”是星期一到星期五的标准。但是,当其中一个星期一是国定假日时会发生什么?在英国,每年都会发生变化(即并非总是在同一天)。计算“工作日”很困难,通常最好通过使用函数的查找表(在代码或SQL中)完成。
这里有一个链接可以提供对此的深入了解......但它并不一定很漂亮! :)
答案 1 :(得分:3)
硬。 SQL默认设置很简单 - 工作日是PRETTY很复杂。你不仅需要考虑星期几,还需要考虑......假期。
如果你有假期表,你可以使用自定义功能和/或触发存储过程来完成。
答案 2 :(得分:0)
此查询适用于获取当前日期与其后3个日期之间的值
SELECT * FROM tableName WHERE columName BETWEEN CURDATE()AND DATE_ADD(CURDATE(),INTERVAL 3 DAY)
这最终会在当前日期增加3天的缓冲区。