【MySQL】关于日期转换的方法

力扣题

1、题目地址

1853. 转换日期格式

2、模拟表

表: Days

Column NameType
daydate
  • day 是这个表的主键。

3、要求

给定一个Days表,请你编写SQL查询语句,将Days表中的每一个日期转化为"day_name, month_name day, year"格式的字符串。

返回的结果表 不计顺序 。

查询结果格式如下例所示。

示例 1:

输入:
Days 表:

day
2022-04-12
2021-08-09
2020-06-26

输出:

day
Tuesday, April 12, 2022
Monday, August 9, 2021
Friday, June 26, 2020

解释:
请注意,输出对大小写敏感。

4、代码编写

我的写法

SELECT CONCAT(DAYNAME(day), ', ', MONTHNAME(day), ' ', DAYOFMONTH(day), ', ', YEAR(day)) AS day
FROM Days
| day                     |
| ----------------------- |
| Tuesday, April 12, 2022 |
| Monday, August 9, 2021  |
| Friday, June 26, 2020   |

网友写法

SELECT DATE_FORMAT(day, '%W, %M %e, %Y') AS day
FROM Days
| day                     |
| ----------------------- |
| Tuesday, April 12, 2022 |
| Monday, August 9, 2021  |
| Friday, June 26, 2020   |

5、知识点

我的写法

1、DAYOFWEEK(date) - 星期索引(ODBC标准)

作用:返回日期date的星期索引(1=星期天,2=星期一, ……7=星期六)。这些索引值对应于ODBC标准。

mysql> select DAYOFWEEK('1998-02-03');
-> 3
2、WEEKDAY(date) - 星期索引

作用:返回date的星期索引(0=星期一,1=星期二, ……6= 星期天)。

mysql> select WEEKDAY('1997-10-04 22:23:00');
-> 5
mysql> select WEEKDAY('1997-11-05');
-> 2
3、DAYOFMONTH(date) - 日(1~31) ⭐️

作用:返回date的月份中日期,在1到31范围内。

mysql> select DAYOFMONTH('1998-02-03');
-> 3
4、DAYOFYEAR(date) - 日(1~366)

作用:返回date在一年中的日数, 在1到366范围内。

mysql> select DAYOFYEAR('1998-02-03');
-> 34
5、MONTH(date) - 月(数字)

作用:返回date的月份,范围1到12。

mysql> select MONTH('1998-02-03');
-> 2
6、DAYNAME(date) - 星期(英文) ⭐️

作用:返回date的星期名字。

mysql> select DAYNAME("1998-02-05");
-> 'Thursday'
7、MONTHNAME(date) - 月(英文) ⭐️

作用:返回date的月份名字。

mysql> select MONTHNAME("1998-02-05");
-> 'February'
8、QUARTER(date) - 季度(数字)

作用:
返回date一年中的季度,范围1到4。
1-3 月返回 1
4 月至 6 月返回 2
7-9 月返回 3
10 月至 12 月返回 4

mysql> select QUARTER('98-04-01');
-> 2
9、WEEK(date) 和 WEEK(date,first) - 第几周

作用:
对于星期天是一周的第一天的地方,有一个单个参数,返回date的周数,范围在0到52。
2个参数形式WEEK()允许你指定星期是否开始于星期天或星期一。
如果第二个参数是0,星期从星期天开始,如果第二个参数是1,从星期一开始。

mysql> select WEEK('1998-02-20');
-> 7
mysql> select WEEK('1998-02-20',0);
-> 7
mysql> select WEEK('1998-02-20',1);
-> 8

注意:里面需要注意第二个参数的设定,比如第二个参数设置为 0,就是从星期天开始,1998 年的第一个星期天是 1 月 4 日,前面只有三天,日数不满足大于 3 的条件,不算一周,所以计算到 1998 年 2 月 20 日 是 第 7 周,当第二个参数设置为 1,就是从星期一开始,1998 年 的第一个星期一是 1 月 5 日,前面有四天,日数满足大于 3 的条件,算一周,所以计算到 1998 年 2 月 20 日 是 第 8 周。

参考:MySQL WEEK() 函数

10、YEAR(date) - 年(数字) ⭐️

作用:返回date的年份,范围在1000到9999。

mysql> select YEAR('98-02-03');
-> 1998
11、HOUR(time) - 小时(0~23)

作用:返回time的小时,范围是0到23。

mysql> select HOUR('10:05:03');
-> 10
12、MINUTE(time) - 分钟(0~59)

作用:返回time的分钟,范围是0到59。

mysql> select MINUTE('98-02-03 10:05:03');
-> 5
13、SECOND(time) - 秒数(0~59)

作用:返回time的秒数,范围是0到59。

mysql> select SECOND('10:05:03');
-> 3

网友写法

DATE_FORMAT() 函数
  • 语法:DATE_FORMAT(date,format);

  • 作用:将日期值格式化为特定格式

  • 参数:
    date:是要格式化的有效日期值
    format:是由预定义的说明符组成的格式字符串,每个说明符前面都有一个百分比字符(%)。

  • DATE_FORMAT函数返回字符集和校对规则取决于客户端连接的设置的字符串。
    下表说明了可用于构建日期格式字符串的说明符及其含义:

限定符含义
%a三个字符缩写的工作日名称,例如:Mon, Tue, Wed 等
%b三个字符缩写的月份名称,例如:Jan,Feb,Mar 等
%c以数字表示的月份值,例如:1, 2, 3…12
%D英文后缀如:0th, 1st, 2nd 等的一个月之中的第几天
%d如果是 1 个数字(小于 10),那么一个月之中的第几天表示为加前导加 0, 如:00, 01, 02, …31
%e⭐️没有前导零的月份的日子,例如:1, 2,… 31
%f微秒,范围在 000000..999999
%H24 小时格式的小时,前导加 0,例如:00, 01 … 23
%h小时,12 小时格式,带前导零,例如:01, 02 … 12
%I(i 的大写)%h 相同
%i分数为零,例如:00, 01,… 59
%j一年中的的第几天,前导为 0,例如,001, 002,… 366
%k24 小时格式的小时,无前导零,例如:0, 1, 2 … 23
%l(L 的小写)12 小时格式的小时,无前导零,例如:0, 1, 2 … 12
%M⭐️月份全名称,例如:January, February,…December
%m具有前导零的月份名称,例如:00, 01, 02,… 12
%pAMPM,取决于其他时间说明符
%r表示时间,12 小时格式 hh:mm:ss AMPM
%S表示秒,前导零,如:00, 01,… 59
%s%S 相同
%T表示时间,24 小时格式 hh:mm:ss
%U周的第一天是星期日,例如:00, 01, 02 … 53 时,前导零的周数
%u周的第一天是星期一,例如:00, 01, 02 … 53 时,前导零的周数
%V%U 相同,它与 %X 一起使用
%v%u 相同,它与 %x 一起使用
%W⭐️工作日的全称,例如:Sunday, Monday,…, Saturday
%w工作日,以数字来表示(0 = 星期日,1 = 星期一等)
%X周的四位数表示年份,第一天是星期日; 经常与 %V 一起使用
%x周的四位数表示年份,第一天是星期日; 经常与 %v 一起使用
%Y⭐️表示年份,四位数,例如 2000,2001,… 等。
%y表示年份,两位数,例如 00,01,… 等。
%%将百分比(%)字符添加到输出

6、参考

Mysql 日期转换星期
MySQL date_format() 函数

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

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

相关文章

【C语言】编程世界的不朽基石与未来展望

C语言,一种经久不衰的高级编程语言,自1972年由Dennis Ritchie在AT&T贝尔实验室开发以来,已深深扎根于编程语言的发展历程中。它既是计算机科学史上的一个重要里程碑,也是现代软件开发的核心支柱。从操作系统到嵌入式系统的构建…

一篇关于大模型在信息抽取(实体识别、关系抽取、事件抽取)的研究进展综述

信息提取(IE)旨在从普通自然语言文本中提取结构化知识(如实体、关系和事件)。最近,生成式大型语言模型(LLMs)展现了在文本理解和生成方面的卓越能力,使得它们能够广泛应用于各种领域…

Java解析xml文档,判断对象是一个json是jsonArray还是jsonObject

有一篇xml文档&#xff0c;如下&#xff1a; 现在需要解析出其中的内容&#xff0c;首先需要明确的是&#xff0c;文档是由一个个的标签嵌套形成的&#xff0c;例如整个xml文件是由许多DescriptorRecord标签构成&#xff0c; <DescriptorRecord DescriptorClass "1&…

基于ssm的旅游网页开发与设计+jsp论文

摘 要 信息数据从传统到当代&#xff0c;是一直在变革当中&#xff0c;突如其来的互联网让传统的信息管理看到了革命性的曙光&#xff0c;因为传统信息管理从时效性&#xff0c;还是安全性&#xff0c;还是可操作性等各个方面来讲&#xff0c;遇到了互联网时代才发现能补上自古…

linuxnodejs 20.* 安装问题,version `GLIBCXX_3.4.26‘

背景 今天服务器被重置拉&#xff0c;nodejs 环境不存在&#xff0c;特意安装下nodejs&#xff0c;一访问官网&#xff0c;妈呀&#xff0c;居然到20版本拉&#xff01;就尝试安装下最新版本&#xff01; 过程 $ cd /opt $ curl -OL https://nodejs.org/dist/v20.10.0/node-v2…

云主机存储网络相关技术概念及网络拓扑介绍

直连式存储&#xff08;DAS&#xff0c;Direct Attached Storage&#xff09; 通过 IDE、SCSI 以及光纤(FC)接口与服务器直接相连&#xff0c;以服务器为中心每个服务器都需要独立的存储设备(磁盘)&#xff0c;且连接距离短&#xff0c;连接数量有限数据分散&#xff0c;共享、…

Docker - 启动 MySQL 闪退解决方案

问题描述 docker run --namemaster -p 3306:3306 -d mysql 启动后发现闪退。查看日志 rootubuntuhexo:# docker logs master 2022-11-11 08:03:0500:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.31-1.el8 started. 2022-11-11 08:03:0500:00 [Note] [E…

系列五、搭建Naco(集群版)

一、搭建Naco&#xff08;集群版&#xff09; 1.1、前置说明 &#xff08;1&#xff09;64位Red Hat7 Linux 系统&#xff1b; &#xff08;2&#xff09;64位JDK1.8&#xff1b;备注&#xff1a;如果没有安装JDK&#xff0c;请参考【系列二、Linux中安装JDK】 &#xff08;3&…

pyDAL一个python的ORM(6) pyDAL常用运算

&#xff08;1&#xff09; 、&#xff01; 等于&#xff0c;不等于 db(db.person.dept marketing).select(db.person.ALL) db(db.person.dept ! marketing).select(db.person.ALL) &#xff08;2&#xff09; >、>、<、< &#xff08;适用于数值、时间类型…

安装jupyter notebook,jupyter notebook的简单使用

借助anaconda安装jupyter notebook&#xff0c;先下载anaconda然后在Anaconda Prompt中输入命令&#xff1a; 输入"jupyter notebook",在默认浏览器中打开jupyter notebook。 输入"jupyter notebook --no-browser"&#xff0c;启动服务器&#xff0c;但不打…

《论文阅读》基于情绪-原因转换图的共情回复生成

《论文阅读》基于情绪-原因转换图的共情回复生成 前言摘要模型架构图构建回复概念预测回复生成前言 今天为大家带来的是《EMPATHETIC RESPONSE GENERATION VIA EMOTION CAUSE TRANSITION GRAPH》 出版: 时间:2023.2.23 类型:共情对话生成 关键词:图网络;共情回复;情绪…

多粒度在研究中的应用

FontDiffuser: One-Shot Font Generation via Denoising Diffusion with Multi-Scale Content Aggregation and Style Contrastive Learning 存在的问题 现有的字体生成方法虽然取得了令人满意的性能&#xff0c;但在处理复杂字和风格变化较大的字符(尤其是中文字符)时&#x…

无边界支付:数字货币如何改变跨境电商?

在全球数字化的浪潮中&#xff0c;数字货币的崛起成为跨境电商领域的一场革命。本文将深入探讨数字货币如何重新定义支付体系&#xff0c;对跨境电商带来的影响以及未来可能的发展方向。 数字货币的崛起 随着比特币等数字货币的逐渐走俏&#xff0c;传统支付体系的边界逐渐被打…

TinyEngine 服务端正式开源啦!!!

背景介绍 TinyEngine 低代码引擎介绍 随着企业对于低代码开发平台的需求日益增长&#xff0c;急需一个通用的解决方案来满足各种低代码平台的开发需求。正是在这种情况下&#xff0c;低代码引擎应运而生。它是一种通用的开发框架&#xff0c;通过对低代码平台系统常用的功能进…

数脉观察二丨 详解CroPoolv2.0锁仓收益机制 文末附锁仓教程

1月1日元旦佳节期间&#xff0c;CyberVein基金会支持打造的CroPoolv2.0最新版本正式上线&#xff0c;获得了圈内媒体和知名KOL多方的关注&#xff0c;在Staking领域掀起了热议&#xff0c;用户可以前往CroPool.net进行锁仓体验。 CroPool v2.0新增“锁仓”功能板块&#xff0c…

泊松分布与二项分布的可加性

泊松分布与二项分布的可加性 泊松分布的可加性 例 : 设 X , Y X,Y X,Y 相互独立 , X ∼ P ( λ 1 ) X\sim P(\lambda_1) X∼P(λ1​) , Y ∼ P ( λ 2 ) Y\sim P(\lambda_2) Y∼P(λ2​) , 求证 Z X Y ZXY ZXY 服从参数为 λ 1 λ 2 \lambda_1 \lambda_2 λ1​λ2​ …

AI:104-基于深度学习的课堂变革与教学策略

🚀点击这里可直接跳转到本专栏,可查阅顶置最新的指南宝典~ 🎉🎊🎉 你的技术旅程将在这里启航! 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带有在本地跑过的关键代码,详细讲解…

qt下载与安装

下载安装包网址&#xff1a; Index of /qt/official_releases/online_installers/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror https://download.qt.io/archive/qt/ 安装&#xff0c;一路next 先不管他&#xff0c;直接下一步

代表团坐车 - 华为OD统一考试

OD统一考试(B卷) 分值: 100分 题解: Java / Python / C++ 题目描述 某组织举行会议,来了多个代表团同时到达,接待处只有一辆汽车可以同时接待多个代表团,为了提高车辆利用率,请帮接待员计算可以坐满车的接待方案输出方案数量。 约束: 一个团只能上一辆车,并且代表团…

两个眼前一亮的工作!已开源,可在线体验!

大家好&#xff0c;我是阿潘&#xff0c;2024 年&#xff0c;新年首个工作日&#xff0c;公司引来组织架构调整&#xff0c;两个工程师和一个产品并入业务线&#xff0c;直面业务大佬的压榨&#xff01; 第一天就搞大事情&#xff0c;希望新的一年&#xff0c;我们都能迎来爆发…