MSSQL 计算两个日期相差的工作天数的语句
计算两个日期之间的工作天数——SQL Server函数
对于需要在SQL Server中计算两个日期之间的工作天数的人来说,以下是一个值得参考的代码片段。这是一个SQL函数,它接受两个日期作为参数,并返回这两个日期之间的工作天数。让我们深入理解并应用这个函数。
如果存在名为`f_WorkDay`的函数,我们需要删除它。接下来的代码段创建了一个新的函数`f_WorkDay`。
函数定义如下:
```sql
CREATE FUNCTION f_WorkDay(
@dt_begin datetime, --计算的开始日期
@dt_end datetime --计算的结束日期
) RETURNS int
AS
BEGIN
-- 初始化变量
DECLARE @workday int, @i int, @bz bit, @dt datetime
SET @workday=0
-- 判断开始日期和结束日期的顺序
IF @dt_begin > @dt_end
BEGIN
SET @bz=1
SET @dt=@dt_begin
SET @dt_begin=@dt_end
SET @dt_end=@dt
END
ELSE
SET @bz=0
-- 循环计算工作天数
WHILE @dt_begin <= @dt_end
BEGIN
SET @workday = CASE
WHEN (@@DATEFIRST+DATEPART(Weekday,@dt_begin)-1)%7 BETWEEN 1 AND 5 THEN @workday+1
ELSE @workday
END
SET @dt_begin=@dt_begin+1
END
-- 返回结果,考虑日期的顺序
RETURN (CASE WHEN @bz=1 THEN -@workday ELSE @workday END)
END
```
如何使用这个函数呢?举个例子,如果你想计算从'2009-10-10'到'2009-10-1'的工作天数,你可以这样使用:`select dbo.f_WorkDay('2009-10-10','2009-10-1')`。返回的结果会是-7,表示从'2009-10-1'到'2009-10-10'的工作天数。注意结果可能是正数或负数,这取决于开始日期和结束日期的顺序。函数会考虑周末和非工作日,只计算工作日。这个函数在处理日期计算时非常有用,特别是在需要计算两个日期之间的工作时间时。
编程语言
- MSSQL 计算两个日期相差的工作天数的语句
- 在JSP中使用formatNumber控制要显示的小数位数方法
- phpStudy访问速度慢和启动失败的解决办法
- jsp中文显示问号问题解决方法
- 不使用php api函数实现数组的交换排序示例
- 在Repeater控件中通过Eval的方式绑定Style样式代码
- 微信小程序--组件(swiper)详细介绍
- 简述Matlab中size()函数的用法
- php往mysql中批量插入数据实例教程
- jQuery中noconflict函数的实现原理分解
- JavaScript实现二分查找实例代码
- 解决在Bootstrap模糊框中使用WebUploader的问题
- 浅谈js 闭包引起的内存泄露问题
- PHP的Yii框架中移除组件所绑定的行为的方法
- 浅谈PHP与C#的值类型指向区别的详解
- AngularJS 验证码60秒倒计时功能的实现