首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SQL Server从两个日期开始工作(不包括星期六和星期日)天数按月和年分组

SQL Server是一种关系型数据库管理系统,用于存储和管理结构化数据。它支持使用SQL语言进行数据查询、插入、更新和删除操作。

在SQL Server中,可以使用日期函数和条件语句来计算从两个日期开始工作的天数,并按照月和年进行分组。以下是一个示例查询:

代码语言:txt
复制
SELECT 
    YEAR(DateColumn) AS Year,
    MONTH(DateColumn) AS Month,
    COUNT(*) AS WorkingDays
FROM 
    TableName
WHERE 
    DateColumn >= '开始日期' AND DateColumn < '结束日期'
    AND DATEPART(WEEKDAY, DateColumn) NOT IN (1, 7)
GROUP BY 
    YEAR(DateColumn), MONTH(DateColumn)
ORDER BY 
    YEAR(DateColumn), MONTH(DateColumn)

在上述查询中,需要将"TableName"替换为实际的表名,"DateColumn"替换为实际的日期列名,"开始日期"和"结束日期"替换为实际的起始日期和结束日期。

该查询使用了DATEPART函数来获取日期的星期几,然后使用条件语句排除星期六和星期日。最后,使用GROUP BY子句按照年和月进行分组,并使用COUNT函数计算每个月的工作日数。

对于SQL Server,腾讯云提供了云数据库SQL Server(CDB for SQL Server)产品,它是一种高性能、高可用的云数据库解决方案。您可以通过以下链接了解更多关于腾讯云数据库SQL Server的信息:

腾讯云数据库SQL Server产品介绍

请注意,以上答案仅供参考,实际情况可能因具体需求和环境而异。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

SQL函数 WEEK

描述WEEK 接受一个日期表达式,并返回该日期年初开始的周数。默认情况下,使用 $HOROLOG 日期 1840 12 月 31 日开始的正整数或负整数天数)计算周数。...因此,周数是逐年计算的,因此第 1 周是完成从上一最后一周开始的 7 天期间的天数。一周总是星期日开始;因此,日历年的第一个星期日标志着第 1 周到第 2 周的变化。...2005 的第 1 周是 2005 1 月 3 日星期一到 1 月 9 日星期日2005,因为它的星期四是 2005 1 月 6 日,也就是 2005 的第一个星期四。...一个月的天数必须与月份年份相匹配。例如,日期“02–29”仅在指定年份是闰年时有效。小于 10 的日期值可以包括或省略前导零。不允许使用其他非规范整数值。...示例以下嵌入式 SQL 示例返回 2005 1 月 2 日(星期日 2006 1 月 1 日(星期日)的星期中的星期几。

1.6K10

PHP时间日期增减操作示例【date strtotime实现加一天、加一月等操作】

分享给大家供大家参考,具体如下: 时间函数是PHP里面的日常函数,时间的默认时期,今天、昨天、明天 、上一周、下一周,本周开始时间结束时间;本月开始时间结束时间;上月开始时间结束时间,指定日期的周一周日等等方法...('PRC'); //默认时区 /** * 功能:取得给定日期所在周的开始日期结束日期 * 参数:$gdate 日期,默认为当天,格式:YYYY-MM-DD * $first 一周以星期一还是星期开始...<br / '; //echo date("Y-m-d",strtotime("time()")); echo '本周第一天(星期日为一周开始):'.date('Y-m-d', time()-86400...<hr '; 运行结果: 2018-12-17|2018-12-23|2018-12-10|2018-12-16 本周第一天(星期日为一周开始):2018-12-16 ——————————————...12月31日周六和20121月1日周日,拿到的周一周日完全不同 201112月31日拿合到的周一周日分别对应 2011-12-26 2012-01-01 但20121月1日拿 到的周一周日分别对应

4.3K31
  • mysql中关于时间统计的sql语句总结

    在之前写VR360时有一个统计页面(https://vr.beifengtz.com/p/statistics.html),在此页面的数据统计时用到了很多mysql中日期函数时间统计sql语句,当时也是参考了一些资料才写出来的...两个参数形式的 WEEK() 允许你指定一周是否以星期日星期开始,以及返回值为 0-53 还是 1-52。...这里的一个表显示第二个参数是如何工作的: 值 含义 0 一周以星期日开始,返回值范围为 0-53 1 一周以星期开始,返回值范围为 0-53 2 一周以星期日开始,返回值范围为 1-53 3 一周以星期开始...在 MySQL 3.23 中,如果表达式的右边是一个日期值或一个日期时间型字段,你可以使用 + - 代替 DATE_ADD() DATE_SUB()(示例如下)。...参数 date 是一个 DATETIME 或 DATE 值,指定一个日期开始。expr 是一个表达式,指定开始日期上增加还是减去间隔值。

    3.6K10

    Oracle函数 – 日期函数详解

    在Oracle中准确来说一个礼拜是星期日开始星期六结束的,其中时间差以天数为单位。...SYSDATE:取得当前的日期时间,类型是DATE.它没有参数.但在分布式SQL语句中使用时,SYSDATE返回本地数据库的日期时间....yyyy-mm-dd'),to_date('2018-05-11','yyyy-mm-dd'))"month" from dual; 结果:-3 18、NEXT_DAY(d,string)函数:准确来说一个礼拜是星期日开始星期六结束的...例如next_day(sysdate,6)是当前开始下一个星期五。很多的查询条件统计都需要求得一周的时间段,也就是星期一到星期日的时间段。给出日期d星期string之后计算下一个星期日期....,查找该日为星期几,并得到星期星期日具体日期 方式一:使用TO_CHAR(SYSDATE,'D')可以求得当前日期是一周的第几天,得到的结果是星期日开始作为第1天的,那么星期一就是第2天,星期日就是第

    7K11

    oracle(1)基础总结

    between 1300 and 1600; 查询薪水不在1300到1600之间的员工,不包括13001600 select * from emp where sal NOT between 1300.../1 显示昨天,今天,明天的日期日期类型 +- 数值 = 日期类型 select sysdate-1 "昨天",sysdate "今天",sysdate+1 "明天" from dual; 以月形式显示员工近似工龄...,日期-日期=数值,假设:一以365天计算,一月以30天计算 select ename "姓名",round(sysdate-hiredate,0)/365 "天数" from emp; 使用months_between...next_day(next_day(sysdate,'星期三'),'星期三') from dual; 测试next_day函数,从今天开始算,下一个星期三的下一个星期日是多少号【中文平台】 select...-日期=天数 2)日期+-天数=日期 ---------------------------------------------------------------------------------

    25830

    Java8新特性:新的时间日期类库

    日期的计算方式繁琐,而且容易出错,因为月份是0开始的,Calendar中获取的月份需要加一才能表示当前月份。...如果查看Instant源码,发现它的内部使用了两个常量,seconds表示1970-01-01 00:00:00开始到现在的秒数,nanos表示纳秒部分(nanos的值不会超过999,999,999)...,计算该日期的下一个工作日(不包括星期六和星期天): LocalDate date = LocalDate.of(2017, 1, 5); date.with(temporal -> { //...MMMM DD日 E", Locale.CHINESE)); // 今天是:2017 一月 05日 星期四 同样,日期类也支持将一个字符串解析成一个日期对象,例如: String strDate6 =...再比如假设年份是累加的,过了一就在原来的年份上加一,但日本天皇在换代之后需要重新纪年,所以过了一份可能会1开始计算。

    1.6K10

    你需要的Excel常用函数都在这里!

    WEEKDAY() WEEKDAY(serial_number,[return_type]) 返回对应于某个日期的一周中的第几天。默认情况下,天数是 1(星期日)到 7(星期六)范围内的整数。...(星期六)到数字 7(星期五) 17 数字 1(星期日)到 7(星期六) WORKDAY() WORKDAY(start_date, days, [holidays]) 返回在起始日期之前或之后、与该日期相隔指定工作日的某一日期日期值...工作不包括周末专门指定的假日。在计算发票到期日、预期交货时间或工作天数时,可以使用函数 WORKDAY 来扣除周末或假日。 start_date 必需。开始日期。 days 必需。...可以使用函数 NETWORKDAYS,根据某一特定时期内雇员的工作天数,计算其应计的报酬。 start_date 必需。开始日期。 end_date 必需。终止日期。 holidays 可选。...RIGHT() 右取子串 LEN() 文本长度 TEXT() 数字转化文本格式 REPT 文本重复 REPLACE 替换特定位置处的文本 SUBSTITUTE 替换文本 日期函数 YEAR() 求

    4K32

    Linux下date命令常用方法小计

    =文件        显示文件指定文件的最后修改时间 -R, --rfc-2822        以RFC 2822格式输出日期时间 例如:20068月7日,星期一 12:34:56 -0600 -...(例如: 日,代表星期日) %A    当前locale 的星期名全称 (如:星期日) %b    当前locale 的月名缩写 (如:一,代表一月) %B    当前locale 的月名全称 (如:一月...) %c    当前locale 的日期时间 (如:20053月3日 星期四 23:05:25) %C    世纪;比如 %Y,通常为省略当前年份的后两位数字(例如:20) %d    按月计的日期...(例如:01) %D    按月计的日期;等于%m/%d/%y %e    按月计的日期,添加空格,等于%_d %F    完整日期格式,等价于 %Y-%m-%d %g    ISO-8601 格式年份的最后两位...05月 13日 星期日 18:50:42 CST [root@Labhost1 ~]# date -d now         # 现在 2018 05月 13日 星期日 18:50:54 CST [

    10K30

    Excel常用函数

    1、获取指定单元格开始的第一个字符 =RIGHT(F2) 2、获取指定单元格开始的指定长度个数的字符 =RIGHT(F2,3) 14、日函数DAY() 返回以序列数表示的某日期天数。...默认情况下,天数是 1(星期日)到 7(星期六)范围内的整数。...一个正整数或负整数,表示一 1 月至 12 月(一月到十二月)的各个月。 如果 *month* 大于 12,则 *month* 会指定年份的第一个月开始加上该月份数。...如果 *day* 大于指定月中的天数,则 *day* 会该月的第一天开始加上该天数。例如,DATE(2008,1,35) 返回表示 2008 2 月 4 日的序列数。...如果 *day* 小于 1,则 *day* 指定月份的第一天开始减去该天数,然后再加上 1 天。例如,DATE(2008,1,-15) 返回表示 2007 12 月 16 日的序列号。

    3.6K40

    细节、MYSQL_DATE_FORMAT()_函数_详解(记得收藏)

    (0=星期日, 6=星期六) %X ,其中的星期日是周的第一天,4 位,与 %V 使用 %x ,其中的星期一是周的第一天,4 位,与 %v 使用 %Y ,4 位 %y ,2 位 实例 下面的脚本使用...2个参数形式WEEK()允许 你指定星期是否开始星期天或星期一。如果第二个参数是0,星期星期开始,如果第二个参数是1, 星期开始。...(见例子)date是一个指定开始日期的 DATETIME或DATE值,expr是指定加到开始日期开始日期减去的间隔值一个表达式,expr是一个字符串;它可以以 一个“-”开始表示负间隔。...TO_DAYS(date) 给出一个日期date,返回一个天数(0天数)。...%Y , 数字, 4 位 %y , 数字, 2 位 %a 缩写的星期名字(Sun……Sat) %d 月份中的天数, 数字(00……31) %e 月份中的天数, 数字(0……31)

    2K20

    细说基姆拉尔森日期公式

    ……  推导之前,先作两项规定: y,m,d,w分别表示,月,日,星期(w=0~6代表星期日~星期六) 我们从公元01月1日星期日开始(y=0,m=1,d=1,w=0) 一、只考虑最开始的7天  ...由于365是7的52倍多1天,所以每一的第一天最后一天星期是相同的,也就是说下一的第一天与上一的第一天星期滞后一天。...这是个重要的结论,每过一,(公式1)会有一天的误差,由于我们是0开始的,所以只须要简单的加上年就可以修正扩展引起的误差,得到公式如下: w = (d - 1 + y) % 7  ②将闰年考虑进去...如果2月是排在一的最后的话,它就不能对其它月份的计算产生影响了,利用这一点,我们将1,2月当作上一的13,14月来看待,由此会产生两个问题需要解决: 一的第一天是3月1日了,我们要对w的计算公式重新推导...由于扩展到月只跟是否闰年有关系,就是说至少要验证一个平年一个闰年,也就是最少得验证24次。

    1.3K10

    SQL 简易教程 下

    ❑ 用于处理日期时间值并从这些值中提取特定成分(如返回两个日期之差,检查日期有效性)的日期时间函数。...MID() - 某个文本字段提取字符,MySql 中使用 LEN() - 返回某个文本字段的长度 ROUND() - 对某个数值字段进行指定小数位数的四舍五入 NOW() - 返回当前的系统日期时间...DATE_ADD 一个是加上日期, 一个是减去日期 DATEDIFF() 函数返回两个日期之间的天数。...%u 周(00-53)星期一是一周的第一天 %V 周(01-53)星期日是一周的第一天,与 %X 使用 %v 周(01-53)星期一是一周的第一天,与 %x 使用 %W 星期名 %w 周的天...(0=星期日, 6=星期六) %X ,其中的星期日是周的第一天,4 位,与 %V 使用 %x ,其中的星期一是周的第一天,4 位,与 %v 使用 %Y ,4 位 %y ,2 位 防止 SQL

    2.1K10

    SQL常用函数

    SQL常用函数 函数介绍 函数分类 字符串函数 数值函数 日期时间函数 流程函数 其他常用函数 函数介绍 事先提供好的一些功能可以直接使用 函数可以用在SELECT语句及其子句 也可以用在UPDATE...CONCAT("ab","cd"); CONCAT("ab","cd") abcd insert(str,x,y,instr) 将字符串strx位置开始,y个字符长的子串替换为指定的字符 INSERT...%u 周 (00-53) 星期一是一周的第一天 %V 周 (01-53) 星期日是一周的第一天,与 %X 使用 %v 周 (01-53) 星期一是一周的第一天,与 %x 使用 %W 星期名 %w 周的天...(0=星期日, 6=星期六) %X ,其中的星期日是周的第一天,4 位,与 %V 使用 %x ,其中的星期一是周的第一天,4 位,与 %v 使用 %Y ,4 位 %y ,2 位 DATE_ADD...) 计算两个日期相差的天数 DATEDIFF("2000-3-20","1998-2-18") 761 流程函数 IF(value,t,f) 如果value是真,返回t,否则返回f IF(2>3,aa

    59240

    Java获取时间格式化日期代码总结

    我们在Java开发过程中,少不了与时间打交道,比如根据两个日期得出相差的时分秒,时间加减,时间累加,前5分钟,前一个月,前一,等等...所以我网上搜集一些常用的时间/日期格式化代码,以飨读者。...getNextYearEnd()); System.out.println("获取本季度第一天到最后一天:" + getThisSeasonTime(11)); System.out.println("获取两个日期之间间隔天数...,其范围 1~7 // 1=星期日 7=星期六,其他类推 return new SimpleDateFormat("EEEE").format(c.getTime()); }...Calendar.DATE, 1);// 设为当前月的1 号 str = sdf.format(lastDate.getTime()); return str; } // 获得本周星期日日期...DateFormat.getDateInstance(); String preMonday = df.format(monday); return preMonday; } /** * 获得上周星期日日期

    4.2K40

    Excel实战技巧:使用日期时间值

    因此,日期时间实际上是Excel中的数字,只需在Excel工作表中输入日期并将其格式化为数字即可查看其等效数值。如果日期是20217月29日,则Excel将其表示为44406。...2.求两个日期之间的天数 由于日期在Excel中表示为连续数字,为了找出任何给定的2个日期之间有多少天,只需将两个日期相减。...例如,=WEEKDAY("2021-7-28"),将返回4(Excel默认情况下星期日开始一周,因此星期三表示为4)。...=TODAY()-DATE(2021,1,1):返回今天与指定日期20211月1日之间的天数。 =WORKDAY(TODAY(),5):返回今天开始5个工作日后的日期。...=NETWORKDAYS(DATE(2021,8,1),DATE(2021,8,31)):返回20218月工作天数

    3.8K30
    领券