概述

做项目中,碰到了个难题:想要根据年份和第几周获取该周的周一和周日的时间。找了下MySQL中的日期函数,发现没有。既然没有轮子用,那我们自己造个轮子。

根据年份和周数获取该周第一天的日期

-- 自定义函数

delimiter //

drop function if exists FUN_GET_FIRSTDATE_OF_WEEK;

create function FUN_GET_FIRSTDATE_OF_WEEK(years int,weeks int) returns varchar(32)

begin

declare days int default 0;

if weeks = 1 then

return concat(years,'-01-01');

elseif weeks >1 then

select dayofweek(concat(years,'-01-01'))-2 into days;

return makedate(years,weeks*7-days-6);

else

return null;

end if ;

end//

delimiter ;

-- 函数调用

select FUN_GET_FIRSTDATE_OF_WEEK(2019,8)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

注意:第一周的第一天存在跨年的问题,一般都是取1月1号

根据年份和周数获取该周最后一天的日期

-- 自定义函数

delimiter //

drop function if exists FUN_GET_LASTDATE_OF_WEEK;

create function FUN_GET_LASTDATE_OF_WEEK(years int,weeks int) returns varchar(32)

begin

declare days int default 0;

if weeks * 7 >= 365 then

return concat(years,'-12-31');

elseif weeks *7 < 365 and weeks *7 >0 then

select dayofweek(concat(years,'-01-01'))-2 into days;

return makedate(years,weeks*7-days);

else

return null;

end if;

end//

delimiter ;

-- 函数调用

select FUN_GET_LASTDATE_OF_WEEK(2020,1)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

注意:年份的最后一周不一定是周日,直接取12月31号即可

mysql查询周数_MySQL根据年份的周数获取该周起始时间相关推荐

  1. mysql查询数据库日期_mysql如何查询日期与时间

    前言: 在项目开发中,一些业务表字段经常使用日期和时间类型,而且后续还会牵涉到这类字段的查询.关于日期及时间的查询等各类需求也很多,本篇文章简单讲讲日期及时间字段的规范化查询方法. 1.日期和时间类型 ...

  2. mysql 查询数据 程序_MySQL 查询数据

    MySQL 查询数据 MySQL 数据库使用SQL SELECT语句来查询数据. 你可以通过 mysql> 命令提示窗口中在数据库中查询数据,或者通过PHP脚本来查询数据. 语法 以下为在MyS ...

  3. MySQL查询的方法_MYSQL 查询方法

    mysql表格查询方法: 查询: 1.简单查询 select * from Info --查所有数据 select Code,Name from Info --查指定列的数据 select Code ...

  4. mysql 查询慢 分析_MySQL优化:定位慢查询的两种方法以及使用explain分析SQL

    一条SQL查询语句在经过MySQL查询优化器处理后会生成一个所谓的执行计划,这个执行计划展示了具体执行查询的方式,比如多表连接的顺序是什么,对于每个表采用什么访问方法来具体执行查询等等. 本章的内容就 ...

  5. mysql 查询缓存设置_MySQL查询缓存设置 提高MySQL查询性能

    从 MySQL4开始,出现了QueryCache查询缓存,如果使用了QueryCache,当查询接收到一个和之前同样的查询,服务器将会从查询缓存种检索结果,而不是再次分析和执行上次的查询.这样就大大提 ...

  6. Mysql查询统计按年月日(年、季、月、周、日)

    Mysql查询统计:按年.季.月.周.日 按年统计交易金额. SELECTsum(goods_fee),YEAR (FROM_UNIXTIME(create_time, '%Y-%m-%d')) FR ...

  7. mysql count 百万级_MySQL 的 count(*) 的优化,获取千万级数据表的总行数

    一.前言 二.关于count的优化 三.使用explain获取行数1.关于explain 2.关于返回值 一.前言 这个问题是今天朋友提出来的,关于查询一个1200w的数据表的总行数,用count(* ...

  8. mysql查询语句题目_MySQL经典练习题及答案,常用SQL语句练习50题

    --1.查询"01"课程比"02"课程成绩高的学生的信息及课程分数 select a.* ,b.s_score as 01_score,c.s_score as ...

  9. mysql查询sql计划_MySQL 查询计划 总结

    (一)查询计划 释义 查询计划: SQL语句是怎样进行执行的 使用 EXPLAIN 关键字可以模拟优化器执行 SQL 查询语句,从而知道 MySQL 是如何处理你的 SQL 语句的.分析你的查询语句或 ...

  10. mysql查询语句 变量_mysql查询语句中用户变量的使用

    先上代码吧 SELECT `notice`.`id` , `notice`.`fid` , `notice`.`has_read` , `notice`.`notice_time` , `notice ...

最新文章

  1. reg类型变量综合电路_verilog中reg和wire类型的区别
  2. java raw_GitHub - Braw115/JavaWEB: JavaWEB学习之中的一些Demo
  3. matlab把cell矩阵转换成能处理的数据
  4. Nmap源码分析(脚本引擎)
  5. make编译工具使用
  6. linux裁剪—定制自己所需要的linux
  7. 在.Net中进行跨线程的控件操作(上篇:Control.Invoke)
  8. 组件中使用_React四种组件通信详解
  9. django09: ORM以及CSRF(旧笔记)
  10. OSChina 周四乱弹 —— 要成立复仇者联盟了,来报名
  11. keepalived与lvs结合使用配置实例
  12. 看我出招之:svchost.exe文件删不得
  13. 博弈论(2)DP/记忆化搜索
  14. Linux 用户和组 (1)基本概念
  15. animate改变背景颜色_3D MAX2016视口背景设置里各参数的含义详解 - 3dmax基础操作入门教程-3dmax材质教程,3d材质贴图教程参数,vray材质参数,3dmax贴图教程...
  16. 导入从postman导出的json接口文件,并设置全局变量
  17. 一篇文章带你大致了解5G关键技术、协议架构、网络优化覆盖、业务测试与验证
  18. unity text颜色渐变
  19. Sinew探索金融衍生品领域,增强金融市场流动性
  20. 冠军团队访谈录|第三届全国人工智能大赛

热门文章

  1. 幼儿课外活动游戏_幼儿园户外活动游戏有哪些
  2. 现代材料分析方法习题汇总及答案
  3. 基于图神经网络的推荐系统
  4. 智汇上海:微软在中国的AI人工智能布局
  5. 【造数】利用Python快速生成测试数据
  6. 替罪羊树的原理及实例
  7. JSP传参 input隐藏域
  8. 【商业】梳理你的商业模式
  9. 用opencv实现连连看外挂
  10. 魔兽世界服务器卡 邮件寄不出去,魔兽世界怀旧服邮件收不到怎么办 WOW怀旧服邮件取不出来解决方法...