
drop function dbof_get_workdays
go
CREATE FUNCTION dbof_get_workdays(@bdate DATETIME, @edate DATETIME)
RETURNS INTEGER
AS BEGIN
DECLARE @workdays INTEGER
IF @bdate > @edate
RETURN -1
SELECT @workdays =
--如果终止日期与起始日期在同一个星期内,只需要计算有几天即可
CASE WHEN DATEPART(wk, @edate-1)-DATEPART(wk,@bdate) = 0 THEN
CASE WHEN DATEPART(dw, @bdate) > 5 THEN 0
WHEN DATEPART(dw, @edate-1) > 5 THEN 6 - DATEPART(dw, @bdate)
ELSE DATEPART(dw, @edate-1) - DATEPART(dw, @bdate) + 1 END
--如果终止日期与起始日期在不同的星期内
--首先计算出除前后两个星期外完整的星期数 5
ELSE (DATEDIFF(dd,@bdate,@edate)
- (8-DATEPART(dw, @bdate))
- DATEPART(dw, @edate-1)) / 7 5
--再加上第一个星期里的工作日数
+ CASE WHEN DATEPART(dw, @bdate) < 6 THEN 6 - DATEPART(dw, @bdate)
ELSE 0 END
--加上末一个星期里的工作日数
+ CASE WHEN DATEPART(dw, @edate-1)>5 THEN 5 ELSE DATEPART(dw, @edate-1) END
END
RETURN @workdays
END
go
select dbof_get_workdays(dateadd(day,-21,getdate()),getdate())
那么你的数据表中需要有个字段是数据添加的时间,而且最好是时间戳格式,也就是10位的数值。然后查询的时候可以用时间间隔的where条件来查询,例如要查询2015年第22周,那么开始时间就是2015年1月1日的时间戳+21604800,因为一周是604800秒,所以用21乘以604800,这样得到开始时间,那结束时间就是开始时间再加604800秒,查询的时候语句就是select from 数据表 where 时间戳字段>开始时间 and 时间戳字段<结束时间; 这样就可以查到了。
很抱歉楼上你给的代码是错误的。。
//这里把星期天当作一周的开始
ConsoleWriteLine(
"本周起始日期:{0},结束日期:{1}",
DateTimeNowAddDays(-(int)DateTimeNowDayOfWeek)ToShortDateString(),
DateTimeNowAddDays(6-(int)DateTimeNowDayOfWeek)ToShortDateString());
ConsoleWriteLine(
"本月共 {0} 天,起始日期:{1},结束日期:{2}",
DateTimeDaysInMonth(DateTimeNowYear, DateTimeNowMonth),
DateTimeNowAddDays(1 - DateTimeNowDay)ToShortDateString(),
DateTimeNowAddDays(DateTimeDaysInMonth(DateTimeNowYear, DateTimeNowMonth) - DateTimeNowDay)ToShortDateString()
);
首先要和用户确定一周是从周几开始,不同地区可能不一样。也可以做在配置文件里可设置。
从起始周几开始编码1~7,得到周一的编码值,
获取系统当前日期,取得当前日期是周几,当前周几转换成编码,
当前日期 -(当前周几编码-周一编码)即为本周一日期。
您好,方法
1、首先咱们输入日期,周几可以通过设置单元格格式的方式得出,所以可以把日期复制到周几那一栏;
2、选中这一栏,在列标处或选中的单元格处右键,选择单元格格式,或者直接按住ctrl+1;选择日期,在右侧选择周几或者星期几,点击确定;
3、下面是效果图;
4、下面看怎么获取周数;这一栏单元格格式一般是常规才好;输入公式:=WEEKNUM(A2),A2替换成你的日期所在的单元格名称,一般显示在excel正文区左上角;
5、然后得出周数;
6、公式写完之后,可以采取下拉填充的方式,或者双击填充,补充完整列;下拉就是鼠标悬浮在在写公式的单元格右下角黑方块处,直接下拉即可,双击就是鼠标变成黑十字,双击即可。
您好,您问的是VBS查询周几?VBS(Visual Basic Script)是一种脚本语言,它可以用来查询周几。您可以使用VBS脚本来查询任何一天是周几,您只需要输入一个日期,然后VBS脚本就可以自动查询出该日期是周几。例如,您可以使用VBS脚本来查询2020年1月1日是周三。VBS脚本还可以用来查询任何一个月的第一天是周几,您只需要输入一个月份,然后VBS脚本就可以自动查询出该月份的第一天是周几。例如,您可以使用VBS脚本来查询2020年2月的第一天是周四。总之,VBS脚本可以用来查询任何一天或者任何一个月的第一天是周几,您只需要输入相应的日期或者月份,然后VBS脚本就可以自动查询出该日期或者月份的第一天是周几。
以上就是关于sqlserver 写一个函数,能获取两个日期之间的周一到周五的总天数全部的内容,包括:sqlserver 写一个函数,能获取两个日期之间的周一到周五的总天数、mysql给定一年中的第几周,输出这一周的日期、如果根据当前日期获取当前周日期和当前周日期等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)