MySQL关于DAYOFWEEK和WEEKDAY说明

⭕️前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家(点击跳转到网站)⭕️

一、MySQL中关于DAYOFWEEK和WEEKDAY

DAYOFWEEK和WEEKDAY均是MySQL中的日期实际函数,用于获取当前日期是星期几,但是二者存在差别

  • DAYOFWEEK

    1 代表星期日 (Sunday)

    2 代表星期一 (Monday)

    3 代表星期二 (Tuesday)

    4 代表星期三 (Wednesday)

    5 代表星期四 (Thursday)

    6 代表星期五 (Friday)

    7 代表星期六 (Saturday)

  • WEEKDAY

    0代表星期日 (Sunday)

    1 代表星期一 (Monday)

    2 代表星期二 (Tuesday)

    3 代表星期三 (Wednesday)

    4 代表星期四 (Thursday)

    5 代表星期五 (Friday)

    6 代表星期六 (Saturday)

举例:

/*
星期一:2024-10-21
星期二:2024-10-22
星期三:2024-10-23
星期四:2024-10-24
星期五:2024-10-25
星期六:2024-10-26
星期天:2024-10-27
*/
SELECT DAYOFWEEK("2024-10-21") -- 2 星期一
SELECT WEEKDAY("2024-10-21") -- 0 星期一

无论用哪一个函数,都不符合一个我国星期一为一周的第一天的基本概念

DAYOFWEEK说明
  • 查询输入日期所在周的其他星期的日期
-- 第一步
SELECT DAYOFWEEK("2024-10-25")  -- 星期五返回6
-- 第二步
SELECT (DAYOFWEEK("2024-10-25") + 5) -- 无论是星期几均加上5
-- 第三步
SELECT (((DAYOFWEEK("2024-10-26") + 5) %7)+1) -- 得到的值经过计算转换,对应返回值便是按照星期一等于1,星期二等于2以此类推返回
-- 最终结果
SELECT (DATE_SUB("2024-10-25", INTERVAL ( SELECT (((DAYOFWEEK("2024-10-25") + 5) % 7) + 1) - 7) DAY)) -- 获取所查日期所属周的星期天日期-- 经过以上处理后,再去取某一天是星期几就很直观,只需要看减掉掉几天就是星期几,该步骤主要因为国外的“第一天”是星期天,相当于这个函数的值的排序对我们来说就说2345671,不进行处理无法直观得到查询日期所属周的其他星期日期
  • 模板

?代表所查询日期,@代表查询日期所属周星期几,1234567对应周一~周天

SELECT (DATE_SUB(?, INTERVAL ( SELECT (((DAYOFWEEK(?) + 5) % 7) + 1) - @) DAY)) as new_date
WEEKDAY说明
  • 查询输入日期所在周的其他星期的日期
-- 第一步
SELECT (WEEKDAY("2024-10-27") +1) -- 该函数对应值是符合基本顺序的,所以直接+1即可
-- 第二步
SELECT (DATE_SUB("2024-10-21", INTERVAL (SELECT (WEEKDAY("2024-10-21") +1)-6)DAY)) -- 和 DAYOFWEEK是相同的
  • 模板

?代表所查询日期,@代表查询日期所属周星期几,1234567对应周一~周天

SELECT (DATE_SUB(?, INTERVAL (SELECT (WEEKDAY(?) +1)-@)DAY))  as new_date
附加DATE_SUB和INTERVAL 说明
  • 在MySQL中,DATE_SUB 是一个日期和时间函数,用于从给定的日期或日期时间值中减去指定的时间间隔。它通常与 INTERVAL 关键字一起使用,以实现对日期和时间的减法操作
DATE_SUB(date, INTERVAL value unit)
/*
date: 要进行减法操作的日期或日期时间值。
value: 要减去的时间间隔的数量。
unit: 时间间隔的单位,如 DAY, MONTH, YEAR, HOUR, MINUTE, SECOND 等。
*/
  • 举例
-- 减去天数
SELECT DATE_SUB('2023-10-01', INTERVAL 7 DAY); -- 结果为 '2023-09-24'
-- 减去月份
SELECT DATE_SUB('2023-10-01', INTERVAL 2 MONTH); -- 结果为 '2023-08-01'
-- 减去年份
SELECT DATE_SUB('2023-10-01', INTERVAL 1 YEAR); -- 结果为 '2022-10-01'
-- 减去时分秒
SELECT DATE_SUB('2023-10-01 12:00:00', INTERVAL 2 HOUR); -- 结果为 '2023-10-01 10:00:00'
SELECT DATE_SUB('2023-10-01 12:00:00', INTERVAL 30 MINUTE); -- 结果为 '2023-10-01 11:30:00'
SELECT DATE_SUB('2023-10-01 12:00:00', INTERVAL 45 SECOND); -- 结果为 '2023-10-01 11:59:15'
-- 结合其他函数
SELECT DATE_SUB(NOW(), INTERVAL 1 WEEK); -- 当前时间减去一周

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/58065.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android13、14特殊权限-应用安装权限适配

Android13、14特殊权限-应用安装权限适配 文章目录 Android13、14特殊权限-应用安装权限适配一、前言二、权限适配三、其他1、特殊权限-应用安装权限适配小结2、dumpsys package查看获取到了应用安装权限3、Android权限系统:应用操作管理类AppOpsManager&#xff08…

达梦与mssql的order by的区别

在单表简单查询时,mssql和dm8都可以通过查询字段名或别名进行order by mssql和dm8,使用字段名进行order by select emp_ID,emp_Name from Employee order by emp_Name mssql和dm8,使用字段别名进行order by select emp_ID,emp_Name as …

【隐私计算篇】全同态加密应用场景案例(隐私云计算中的大模型推理、生物识别等)

1.题外话 最近因为奖项答辩,一直在忙材料准备,过程非常耗费时间和精力,很难有时间来分享。不过这段时间虽然很忙碌,但这期间有很多新的收获,特别是通过与领域内专家的深入交流和评审过程,对密码学和隐私计算…

今日头条APP移动手机端留痕脚本

这两个的脚本目的是什么呢? 很简单,就是批量访问指定用户的首页,在他人访客记录里面留下你的账户信息,可以让对方访问你的头条,概率下会关注你的头条,目的嘛,这个自己细想! 第1个是…

Python实现Android设备录屏功能及停止录屏功能

1、功能概述? 提供源码下载 之前通过ADB命令实现了实时的录屏功能。但是很遗憾,虽然通过adb命令录屏非常方便,但由于权限限制,无法在安卓系统较高的设备上使用。现选择使用另一开源工具来解决这一问题,并记录使用详细…

php基础:数据类型、常量、字符串

语法补充: 每句必须以;结尾 echo:能输出一个以上的字符串,英文逗号隔开 print:只能输出一个字符串并返回1 1.数据类型 php可以自动识别数据类型。 php有5种数据类型:String(字符串&#xf…

java jsoup爬虫如何快速获取到html页面的选择器元素

java jsoup爬虫如何快速获取到html页面的选择器元素 一、打开元素选择器二、选定元素三、定位元素位置四、右键 -> copy ->copySelector五、代码中获取 一、打开元素选择器 在java采用jsoup爬虫中,返回的是html页面而不是json字段,就需要使用jsou…

[C++11] 右值引⽤与移动语义

文章目录 左值和右值左值(Lvalue)右值(Rvalue)区别 左值引⽤和右值引⽤左值引用(Lvalue Reference)右值引用(Rvalue Reference)右值引用的特点 右值引用延长生命周期右值引⽤和移动语…

传输层UDP

再谈端口号 端口号:标识了主机上进行通信的不同的应用程序 在TCP/IP 协议中我们用“源IP”"源端口号" “目的IP”“目的端口号” “协议号”五元组来标识一个通信 用netstat -n 查看 查看网络信息,我们有两种命令查看网络通信1.用netsta…

Linux-练习3

题目: 操作过程: 1.建立用户组 shengcan,其id 为 2000 2.建立用户组 caiwu,其id 为 2001 3.建立用户组 jishu,其 id 为 2002 4.建立用户 lee,指定其主组 id 为 shengchan,附加组为 jishu 和…

多GPU训练大语言模型,DDP, ZeRO 和 FSDP

在某些时候,我们可能需要将模型训练扩展到单个 GPU 之外。当模型变得太大无法适应单个 GPU 时,需要使用多 GPU 计算策略。但即使模型适合单个 GPU,使用多个 GPU 来加速训练也是有好处的。即使您正在处理一个小模型,了解如何在多个…

HTML5新增属性

1、HTML5 1.1 新增布局标签 header:用于定义文档或者section的页眉;footer:用于定义页面或section的底部信息;nav:用于定位页面上的导航链接部分;article:用于定位文档或者页面中的独立部分&a…

在浏览器中运行 Puppeteer:解锁新能力

Puppeteer,这个强大的浏览器自动化工具,通常在Node.js环境中运行。但你有没有想过,在浏览器本身中运行Puppeteer会是什么样子?这不仅能让我们利用Puppeteer的功能完成更多任务,还能避开Node.js特定的限制。 支持的功…

【Canvas与桌面】文山甲密铺桌面壁纸 1920*1080

【成图】 不加蒙版的部分截图&#xff1a; 加上蒙版的桌面壁纸图&#xff1a; 不加蒙版的桌面壁纸图&#xff1a; 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8&qu…

ts:对象数组的简单使用

ts中对象数组的简单使用 一、主要内容说明二、例子1、源码12、源码1运行效果 三、结语四、定位日期 一、主要内容说明 平常ts创建数组的格式如下&#xff1a; let array:string[]["元素1","元素2","元素3","元素3","元素4"…

在 Ubuntu 22.04 LTS 上安装 NVM (Node Version Manager) 管理和切换不同版本的 Node.js npm

安装 nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash# nvm --version 0.40.1安装 Node.js 的不同版本 列出所有可用的 Node.js 远程版本 nvm ls-remotenvm install v18.20.4# node --version v18.20.4# nvm current v18.20.4npm 是 …

Java语言-异常

目录 1.异常的概念与体系结构 1.1 异常的概念 1.2 异常的体系结构 1.3 异常的分类 1.3.1 编译时异常(受查异常) 1.3.2 运行时异常(非受查异常) 2.异常的处理 2.1 防御式编程 2.1.1 LBYL 2.1.2 EAFP 2.2 异常的抛出 2.3 异常的捕获 2.3.1 异常声明throws 2.3.2 …

gin入门教程(6):全局中间件,自定义中间件

在 Gin 中&#xff0c;中间件用于处理请求的预处理和后处理&#xff0c;可以实现日志、身份验证、跨域资源共享&#xff08;CORS&#xff09;等功能。下面是如何使用和创建中间件的基本步骤&#xff1a; 1. 使用内置中间件 Gin 提供了一些内置中间件&#xff0c;例如&#xf…

Docker 下备份恢复oracle

1.docker导出容器镜像 ##docker save -o 导出后的镜像名称.tar 容器名称|镜像id docker save -o oracle_11g.tar 3fa112fd3642 2.下载镜像上传镜像略 3.加载镜像 ##docker load -i <archive_file> docker load -i oracle11g11201.tar 4.添加版本号…

LeetCode 3185.构成整天的下标对数目 II:哈希表

【LetMeFly】3185.构成整天的下标对数目 II&#xff1a;哈希表 力扣题目链接&#xff1a;https://leetcode.cn/problems/count-pairs-that-form-a-complete-day-ii/ 给你一个整数数组 hours&#xff0c;表示以 小时 为单位的时间&#xff0c;返回一个整数&#xff0c;表示满足…