mysql 计算两个日期之间的工作日天数

  创建透视表t500
  
  建表
  
  CREATE TABLE `t500` (
  
  `id` int(11) NOT NULL AUTO_INCREMENT,
  
  PRIMARY KEY (`id`)
  
  ) ENGINE=InnoDB AUTO_INCREMENT=501 DEFAULT CHARSET=latin1;
  
  插入500条数据
  
  CREATE DEFINER=`json`@`%` PROCEDURE `i500`()
  
  BEGIN
  
  DECLARE a INT default 1;
  
  while a<=500 do
  
  insert into t500 (id) value(a);
  
  set a=a+1;
  
  end while;
  
  end
  
  2.1
  
  select t500.id from t500 where t500.id <=DATEDIFF("2019-02-01","2019-01-01")+1
  
  2.2
  
  SELECT
  
  DATE_ADD(
  
  STR_TO_DATE( "2019-01-01", ‘%Y-%m-%d‘ ),
  
  INTERVAL t500.id - 1 DAY
  
  )
  
  FROM
  
  t500
  
  WHERE
  
  t500.id <= DATEDIFF( "2019-02-01", "2019-01-01" ) +1
  
  2.3
  
  SELECT
  
  DATE_FORMAT(
  
  DATE_ADD(
  
  STR_TO_DATE( "2019-01-01", ‘%Y-%m-%d‘ ),
  
  INTERVAL t500.id - 1 DAY
  
  ),
  
  ‘%a‘
  
  )
  
  FROM
  
  t500
  
  WHERE
  
  t500.id <= DATEDIFF( "2019-02-01", "2019-01-01" ) +1
  
  2.4
  
  SELECT
  
  CASE
  
  WHEN
  
  DATE_FORMAT(
  
  DATE_ADD(
  
  STR_TO_DATE( "2019-01-01", ‘%Y-%m-%d‘ ),
  
  INTERVAL t500.id - 1 DAY
  
  ),
  
  ‘%a‘
  
  ) IN ( ‘Sat‘, ‘Sun‘ ) THEN
  
  0 ELSE 1 end
  
  FROM
  
  t500
  
  WHERE
  
  t500.id <= DATEDIFF( "2019-02-01", "2019-01-01" ) +1
  
  2.5 最终SQL
  
  select sum(CASE
  
  WHEN
  
  DATE_FORMAT(
  
  DATE_ADD(
  
  STR_TO_DATE( "2019-01-01", ‘%Y-%m-%d‘ ),
  
  INTERVAL t500.id - 1 DAY
  
  ),
  
  ‘%a‘
  
  ) IN ( ‘Sat‘, ‘Sun‘ ) THEN
  
  0 ELSE 1 end ) as days from
  
  t500
  
  WHERE
  
  t500.id <= DATEDIFF( "2019-02-01", "2019-01-01" ) +1
  
  @SpringBootApplication
  
  @ComponentScan(value =www.dfgjpt.com "indi.viyoung.viboot.*")
  
  @MapperScan(value = "indi.viyoung.viboot.swagger2.mapper")
  
  @EnableSwagger2
  
  @EnableSwaggerBootstrapUI
  
  public class ViBootSwaggerApplication {
  
  public static void main(www.fengshen157.com String[www.mhylpt.com] args) {
  
  SpringApplication.run(ViBootSwaggerApplication.class, args);
  
  }
  
  }
  
  第四步:通过注解来完成API文档
  
  1. @Api
  
  注解名称 注解属性 作用域 属性作用
  
  @Api tags 类 说明该类的作用
  
  value 类 说明该类的作用
  
  举个??:
  
  @Api(value = "用户类控制器",tags="用户类控制器")
  
  public class UserController {
  
  ...
  
  }
  
  在这里插入图片描述
  
  2 . @ApiOperation
  
  注解名称 注解属性 作用域 属性作用
  
  @ApiOperation() value 方法 描述方法作用
  
  notes 方法 提示内容
  
  tags 方法 分组
  
  举个??:
  
  @ApiOperation(value = "获取用户列表",notes = "获取用户列表")
  
  public List<User> get() {
  
  ...
  
  }
  
  3. @ApiParam
  
  注解名称 注解属性 作用域 属性作用
  
  @ApiParam() name 方法参数 参数名
  
  value 方法参数 参数说明
  
  required 方法参数 是否必填
  
  举个??:
  
  @ApiOperation(value="获取用户详细信息", notes="根据url的id来获取用户详细信息")
  
  public User get(@ApiParam(name="id",value=www.mhylpt.com"用户id",required=true) Long id) {
  
  log.info("GET..{}...方法执行。。。",id);
  
  return userService.getById(id);
  
  }
  
  4. @ApiModel && @ApiModelProperty
  
  注解名称 注解属性 作用域 属性作用
  
  @ApiModel() value 类 对象名
  
  description 类 描述
  
  @ApiModelProperty() value 方法 字段说明
  
  name 方法 属性名
  
  dataType 方法 属性类型
  
  required 方法 是否必填
  
  example 方法 举例
  
  hidden 方法 隐藏
  
  举个??:
  
  @ApiModel(value="user对象",description="用户对象user")
  
  public class User implements Serializable {
  
  private static final long serialVersionUID = 1L;
  
  @TableId(value = "id", type =www.yongshi123.cn IdType.AUTO)
  
  @ApiModelProperty(value = www.ycjszpgs.com"用户ID",example = "1000001",hidden=true)
  
  private Long id;
  
  @ApiModelProperty(www.michenggw.com value="用户名",required = true,dataType = "String")
  
  private String userName;
  
  @ApiModelProperty(value = "密码")
  
  private String password;
  
  }
  
  5. @ApiImplicitParam && @ApiImplicitParams
  
  `@ApiImplicitParam`可以单个用于方法至上,多个参数的话可以把`@ApiImplicitParam`放到`@ApiImplicitParams`中,这里只罗列`@ApiImplicitParam`的属性:
  
  注解名称 注解属性 作用域 属性作用
  
  @ApiImplicitParam() value 方法 参数说明
  
  name 方法 参数名
  
  dataType 方法 数据类型
  
  paramType 方法 参数类型
  
  example 方法 举例
  
  举个??:
  
  @ApiImplicitParams({
  
  @ApiImplicitParam(name = "user",www.yongshiyule178.com value = "用户实体user", required = true, dataType = "User")
  
  })
  
  public void put(User user) {
  
  userService.updateById(user);
  
  log.info("PUT方法执行。。。");
  
  }
  
  这里需要注意一点,我们并没有在注解中写图中圈中的两个参数,这个是去读取了我们刚刚为User类的注解,并将用户名设置为必填!
  
  6.@ApiResposne && @ApiResponses
  
  @ApiResponses与@ApiResponse的关系和@ApiImplicitParam && @ApiImplicitParams 的关系和用法都是类似的
  
  注解名称 注解属性 作用域 属性作用
  
  @ApiResponse() response 方法 返回类
  
  code 方法 返回码
  
  message 方法 返回信息
  
  examples 方法 例子
  
  最后再聊聊这个UI
  
  先贴几张spring-fox的ui(正是我们所熟知的那一套)
  
  相信看到这里,大家心里对于这两套UI的选择应该都有个答案了,当然bootstrap风格的ui不仅好看,而且有各种强大的功能~
  
  导出md文档
  
  参数缓存
  
  在这里插入图片描述
  
  原创文章,文笔有限,才疏学浅,文中若有不正之处,万望告知。

原文地址:https://www.cnblogs.com/qwangxiao/p/10493796.html

时间: 2024-07-30 09:52:31

mysql 计算两个日期之间的工作日天数的相关文章

计算两个日期之间的工作日天数

最近遇到要求两个日期之间的工作日天数的问题,遂在网上找了下js的代码,参考了下别人的代码,发现写的都有些冗余,于是自己思考,进行了一下简单处理.主要是在循环处理上进行了精简. 对剩余天数的循环,也就可以考虑是对开始日期到剩余天数之间的处理,循环开始日期到剩余天数之间有多少个周六周日(最多只有一个周六或者一个周日),由于当前开始日期在(0-6)之间,也就是当前开始日期的星期对应的数字加上剩余天数(0-6)的循环一定在(0-11)之间,所以0,7代表周日,6代表周六. <html> <hea

【翻译自mos文章】计算Oracle数据库中两个日期之间的工作日天数

计算两个日期之间的工作日天数(不包括这两个日期,不包括weekend) 参考自: How to Compute Business Days for a Date Range in SQL or PLSQL (Doc ID 1014162.6) 有两个方法: 第一个是 使用sql语句: SQL> SELECT ((TO_NUMBER(TRUNC(to_date('2015-04-22','yyyy-mm-dd'), 'D') - TRUNC(to_date('2015-04-21','yyyy-m

用VBA计算两个日期之间的工作日(去掉周末两天)

最近公司HR和Finance想算员工的工作天数,想让我帮忙写些VBA,自己从网上找了下代码,自己再改改,以下来自网络. 计算两个日期之间的工作日,用VBA,因量大,最好用数组做 Sub kk() Dim arr, i&, j&, m& arr = Sheet2.Range("b3:f4") For i = 1 To UBound(arr) m = 0 For j = arr(i, 1) To arr(i, 3) If Weekday(j) <> 1

(013)每日SQL学习:确定两个日期之间的工作日天数和计算一年周内各日期次数

1.确定两个日期之间的工作日天数 --确定两个日期之间的工作日天数with x0 as (select to_date('2018-01-01','yyyy-mm-dd') as 日期 from dual union all select to_date('2018-01-15','yyyy-mm-dd') as 日期 from dual ), x1 as --日期并列显示 (select min (日期) 开始日期,max(日期) 结束日期 from x0 ), x2 as --日期之间的天数

java计算两个日期之间相隔的天数

1 import java.text.ParseException; 2 import java.text.SimpleDateFormat; 3 import java.util.Calendar; 4 import java.util.Date; 5 6 7 public class date { 8 9 /** 10 * @param args 11 * @throws ParseException 12 */ 13 public static void main(String[] arg

计算两个日期之间相差的天数(带带负数) 支持格式YYYY-mm-dd比较

/** * 计算两个日期之间相差的天数(带带负数) 支持格式YYYY-mm-dd比较 * @param higDate 减数 * @param lowDate 被减数 * @returns 差值天数 格式不正确返回null * @dada 2016-09-19 lhh添加备注 */ function DateDiff(higDate, lowDate) { //sDate1和sDate2是2006-12-18格式 var aDate, oDate1, oDate2, iDays; aDate =

计算两个日期之间的工作日(去掉周末和节假日)

1 package com.utouu.uphone.commons; 2 3 import java.text.ParseException; 4 import java.text.SimpleDateFormat; 5 import java.util.ArrayList; 6 import java.util.Calendar; 7 import java.util.Date; 8 import java.util.Iterator; 9 import java.util.List; 10

C语言,使用结构体读入两个在同一年的日期,判断日期是否合法,并计算两个日期之间相差的天数。结构体定义如下:

如下: typedef struct date { int year; int month; int day; }; 提示: 1. 使用如下函数完成相应功能 int isleapyear(int y); //计算是否为闰年 int islegal(Date x); //计算日期是否合法 int calcday(Date x);//计算日期是当年的第几天,用于计算两个日期之间天数的差值 2. 用于一维数组表示一年每月含有的天数 int dayofmonth[12] = {31,28,31,30,3

计算两个日期之间的工作日

兰大顾的... FUNCTION zget_workdays. *"---------------------------------------------------------------------- *"*"Local Interface: *" IMPORTING *" VALUE(I_DATE1) LIKE SY-DATUM *" VALUE(I_DATE2) LIKE SY-DATUM *" EXPORTING *&qu