MySQL 的 datetime等日期和时间处理SQL函数及格式化显示
MySQL 的 datetime等日期和时间处理SQL函数及格式化显示
MySQL 时间相关的SQL函数:
MySQL的SQL DATE_FORMAT函数:
用于以不同的格式显示日期/时间数据。
DATE_FORMAT(date, format) 根据格式串 format 格式化日期或日期和时间值 date,返回结果串。
可用使用 DATE_FORMAT() 来格式化 DATE、DATETIME、TIMESTAMP的值以期望的格式进行显示。
DATE_FORMAT 支持的格式如下:
%S,%s:两位数字形式的秒(00~59)
%i:两位数字形式的分(00~59)
%H:两位数字形式的小时,24小时制(00~23)
%h, %I:两位数字形式的小时,12小时制(01~12)
%k:数字形式的小时,24小时制(0,1,...,23)
%l:数字形式的小时,12小时(1,2,...,12)
%T:24小时的时间形式(hh:mm:ss)
%r:12小时的时间形式(hh:mm:ss AM 或hh:mm:ss PM)
%p:AM 或P M
%W:一周中每一天的名称(Sunday,Monday,...,Saturday)
%a:一周中每一天名称的缩写(Sun,Mon,...,Sat)
%d:两位数字表示月中的天数(00,01,...,31)
%e:数字形式表示月中的天数(1,2,...,31)
%D:英文后缀表示月中的天数(1st,2nd,3rd,...)
%w:以数字形式表示周中的天数(0=Sunday,1=Monday,...,6=Saturday)
%j:以三位数字表示年中的天数(001,002,...,366)
%U:周(0,1,...,52),其中Sunday为周中的第一天
%u:周(0,1,...,52),其中Monday为周中的第一天
%M:月(January,February,...,December)
%b:缩写的月(Jan,Feb,...,Dec)
%m:两位数字表示的月份(01,02,...,12)
%c:数字表示的月份(1,2,...,12)
%Y:四位数字表示的年份(2023)
%y:两位数字表示的年份(23)
%%:直接值“%”
测试:
select date_format(current_timestamp(), '%Y-%m-%d %H:%i:%s.%f'); -- 不指定精度、默认精确到秒
select date_format(current_timestamp(6), '%Y-%m-%d %H:%i:%s.%f'); -- 指定精度到最大精度微秒
select date_format(now(), '%Y-%m-%d %H:%i:%s.%f'); -- 不指定精度、默认精确到秒
select date_format(now(6), '%Y-%m-%d %H:%i:%s.%f'); -- 指定精度到最大精度微秒
mysql> select date_format(current_timestamp(), '%Y-%m-%d %H:%i:%s.%f'); -- 不指定精度、默认精确到秒
+----------------------------------------------------------+
| date_format(current_timestamp(), '%Y-%m-%d %H:%i:%s.%f') |
+----------------------------------------------------------+
| 2023-02-14 10:40:38.000000 |
+----------------------------------------------------------+
1 row in set (0.00 sec)
mysql> select date_format(current_timestamp(6), '%Y-%m-%d %H:%i:%s.%f'); -- 指定精度到最大精度微秒
+-----------------------------------------------------------+
| date_format(current_timestamp(6), '%Y-%m-%d %H:%i:%s.%f') |
+-----------------------------------------------------------+
| 2023-02-14 10:40:52.119296 |
+-----------------------------------------------------------+
1 row in set (0.00 sec)
mysql> select date_format(now(), '%Y-%m-%d %H:%i:%s.%f'); -- 不指定精度、默认精确到秒
+--------------------------------------------+
| date_format(now(), '%Y-%m-%d %H:%i:%s.%f') |
+--------------------------------------------+
| 2023-02-14 10:40:56.000000 |
+--------------------------------------------+
1 row in set (0.00 sec)
mysql> select date_format(now(6), '%Y-%m-%d %H:%i:%s.%f'); -- 指定精度到最大精度微秒
+---------------------------------------------+
| date_format(now(6), '%Y-%m-%d %H:%i:%s.%f') |
+---------------------------------------------+
| 2023-02-14 10:41:00.558442 |
+---------------------------------------------+
1 row in set (0.00 sec)
mysql> select date_format(DATE_ADD(now(6), INTERVAL 2 DAY), '%Y-%m-%d %H:%i:%s.%f'); -- 指定精度到最大精度微秒,日期+2天
+-----------------------------------------------------------------------+
| date_format(DATE_ADD(now(6), INTERVAL 2 DAY), '%Y-%m-%d %H:%i:%s.%f') |
+-----------------------------------------------------------------------+
| 2023-02-16 10:41:08.324454 |
+-----------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> select date_format(DATE_SUB(now(6), INTERVAL 2 DAY), '%Y-%m-%d %H:%i:%s.%f'); -- 指定精度到最大精度微秒,日期-2天
+-----------------------------------------------------------------------+
| date_format(DATE_SUB(now(6), INTERVAL 2 DAY), '%Y-%m-%d %H:%i:%s.%f') |
+-----------------------------------------------------------------------+
| 2023-02-12 10:41:15.232208 |
+-----------------------------------------------------------------------+
1 row in set (0.00 sec)
SQL插入datetime类型的数据到数据表中:
test01的表结构:
mysql> show create table test01;
+-----------+---------------------------------------------------+
| Table | Create Table |
+-----------+---------------------------------------------------+
| test01 | CREATE TABLE `test01` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`c_datetime` datetime DEFAULT NULL,
`c_timestamp` timestamp NULL DEFAULT NULL,
`c_datetime6` datetime(6) DEFAULT NULL,
`c_datetime3` datetime(3) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 |
+-----------+---------------------------------------------------+
1 row in set (0.00 sec)
插入数据:
mysql> insert into test01(id,c_datetime,c_timestamp,c_datetime6,c_datetime3) values (
7,
date_format(current_timestamp(6), '%Y-%m-%d %H:%i:%s.%f'),
date_format(current_timestamp(6), '%Y-%m-%d %H:%i:%s.%f'),
date_format(current_timestamp(6), '%Y-%m-%d %H:%i:%s.%f'),
date_format(current_timestamp(6), '%Y-%m-%d %H:%i:%s.%f'));
mysql> insert into test01(id,c_datetime,c_timestamp,c_datetime6,c_datetime3) values (
8,
date_format(now(6), '%Y-%m-%d %H:%i:%s.%f'),
date_format(now(6), '%Y-%m-%d %H:%i:%s.%f'),
date_format(now(6), '%Y-%m-%d %H:%i:%s.%f'),
date_format(now(6), '%Y-%m-%d %H:%i:%s.%f'));
mysql> insert into test01(id,c_datetime,c_timestamp,c_datetime6,c_datetime3) values (
9,
'2023-01-01 15:59:30.123456',
'2023-01-01 15:59:30.123456',
'2023-01-01 15:59:30.123456',
'2023-01-01 15:59:30.123456');
mysql> insert into test01(id,c_datetime,c_timestamp,c_datetime6,c_datetime3) values (
10,
now(6),
now(6),
now(6),
current_timestamp(6));
mysql> select * from test01;
+----+---------------------+---------------------+----------------------------+-------------------------+
| id | c_datetime | c_timestamp | c_datetime6 | c_datetime3 |
+----+---------------------+---------------------+----------------------------+-------------------------+
| 1 | 2023-02-02 09:10:11 | NULL | NULL | NULL |
| 2 | 2023-02-02 09:10:15 | NULL | NULL | NULL |
| 3 | 2038-01-01 15:00:01 | 2038-01-01 15:00:01 | NULL | NULL |
| 4 | 2038-01-05 15:00:01 | 2038-01-05 15:00:01 | NULL | NULL |
| 5 | 2038-01-30 15:00:01 | NULL | NULL | NULL |
| 6 | 9999-01-01 15:00:01 | NULL | 9999-01-01 15:00:01.111222 | 9999-01-01 15:00:01.111 |
| 7 | 2023-02-14 09:31:14 | 2023-02-14 09:31:14 | 2023-02-14 09:31:13.946331 | 2023-02-14 09:31:13.946 |
| 8 | 2023-02-14 10:47:47 | 2023-02-14 10:47:47 | 2023-02-14 10:47:47.168735 | 2023-02-14 10:47:47.169 |
| 9 | 2023-01-01 15:59:30 | 2023-01-01 15:59:30 | 2023-01-01 15:59:30.123456 | 2023-01-01 15:59:30.123 |
| 10 | 2023-02-14 10:58:13 | 2023-02-14 10:58:13 | 2023-02-14 10:58:13.141804 | 2023-02-14 10:58:13.142 |
+----+---------------------+---------------------+----------------------------+-------------------------+
10 rows in set (0.06 sec)
mysql> select id,date_format(c_datetime6, '%Y-%m-%d %H:%i:%s') from test01;
+----+-----------------------------------------------+
| id | date_format(c_datetime6, '%Y-%m-%d %H:%i:%s') |
+----+-----------------------------------------------+
| 1 | NULL |
| 2 | NULL |
| 3 | NULL |
| 4 | NULL |
| 5 | NULL |
| 6 | 9999-01-01 15:00:01 |
| 7 | 2023-02-14 09:31:13 |
| 8 | 2023-02-14 10:47:47 |
| 9 | 2023-01-01 15:59:30 |
| 10 | 2023-02-14 10:58:13 |
+----+-----------------------------------------------+
10 rows in set (0.00 sec)
mysql> select id,date(c_datetime6) from test01;
+----+-------------------+
| id | date(c_datetime6) |
+----+-------------------+
| 1 | NULL |
| 2 | NULL |
| 3 | NULL |
| 4 | NULL |
| 5 | NULL |
| 6 | 9999-01-01 |
| 7 | 2023-02-14 |
| 8 | 2023-02-14 |
| 9 | 2023-01-01 |
| 10 | 2023-02-14 |
+----+-------------------+
10 rows in set (0.01 sec)
mysql> select id,datediff(c_datetime6, '2020-01-01') from test01;
+----+-------------------------------------+
| id | datediff(c_datetime6, '2020-01-01') |
+----+-------------------------------------+
| 1 | NULL |
| 2 | NULL |
| 3 | NULL |
| 4 | NULL |
| 5 | NULL |
| 6 | 2914270 |
| 7 | 1140 |
| 8 | 1140 |
| 9 | 1096 |
| 10 | 1140 |
+----+-------------------------------------+
10 rows in set (0.00 sec)
MySQL的SQL Date函数
NOW():返回当前的日期和时间
CURDATE():返回当前的日期
CURTIME():返回当前的时间
DATE():提取日期或日期/时间表达式的日期部分
EXTRACT():返回日期/时间按的单独部分
DATE_ADD():给日期添加指定的时间间隔
DATE_SUB():从日期减去指定的时间间隔
DATEDIFF():返回两个日期之间的天数
DATE_FORMAT():用不同的格式显示日期/时间
MySQL的SQL Date 数据类型
MySQL 使用下列数据类型在数据库中存储日期或日期/时间值:
DATE - 格式 YYYY-MM-DD
DATETIME - 格式: YYYY-MM-DD HH:MM:SS
TIMESTAMP - 格式: YYYY-MM-DD HH:MM:SS
YEAR - 格式 YYYY 或 YY
DATETIME和TIMESTAMP如果要精确到毫秒或微妙,需要指定精度,例如:DATETIME(6)、TIMESTAMP(6)
相关文章:
MySQL 的 datetime等日期和时间处理SQL函数及格式化显示
MySQL 的 datetime等日期和时间处理SQL函数及格式化显示MySQL 时间相关的SQL函数:MySQL的SQL DATE_FORMAT函数:用于以不同的格式显示日期/时间数据。DATE_FORMAT(date, format) 根据格式串 format 格式化日期或日期和时间值 date,返回结果串。…...
基于微信云开发的防诈反诈宣传教育答题小程序
基于微信云开发的防诈反诈宣传教育答题小程序一、前言介绍作为当代大学生,诈骗事件的发生屡见不鲜,但却未能引起大家的重视。高校以线上宣传、阵地展示为主,线下学习、实地送法为辅,从而构筑立体化反诈骗防线。在线答题考试是一种…...
Map和Set
Map和set是一种专门用来进行搜索的容器或者数据结构,其搜索的效率与其具体的实例化子类有关。数据的一般查找方式有两种:直接遍历和二分查找。但这两种查找方式都有很大的局限性,也不便于对数据进行增删查改等操作。对于这一类数据的查找&…...
【位运算问题】Leetcode 136、137、260问题详解及代码实现
Halo,这里是Ppeua。平时主要更新C语言,C,数据结构算法......感兴趣就关注我吧!你定不会失望。 🌈个人主页:主页链接 🌈算法专栏:专栏链接 我会一直往里填充内容哒! &…...
同花顺2023届春招内推
同花顺2023届春招开始啦! 同花顺是国内首家上市的互联网金融信息服务平台,如果你对互联网金融感兴趣,如果你有志向在人工智能方向发挥所长,如果你也是一个激情澎湃的小伙伴,欢迎加入我们!岗位类别…...
深入Kafka核心设计与实践原理读书笔记第三章消费者
消费者 消费者与消费组 消费者Consumer负责定于kafka中的主题Topic,并且从订阅的主题上拉取消息。与其他消息中间件不同的在于它有一个消费组。每个消费者对应一个消费组,当消息发布到主题后,只会被投递给订阅它的消费组的一个消费者。 如…...
IDEA 中使用 Git 图文教程详解
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...
【Linux系统】进程概念
目录 1 冯诺依曼体系结构 2 操作系统(Operator System) 概念 设计OS的目的 定位 总结 系统调用和库函数概念 3 进程 3.1 基本概念 3.2 描述进程-PCB 3.2 组织进程 3.3 查看进程 3.4 通过系统调用获取进程标示符 3.5 进程状态 在了解进程概念前我们还得了解下冯诺…...
上课睡觉(2023寒假每日一题 4)
有 NNN 堆石子,每堆的石子数量分别为 a1,a2,…,aNa_1,a_2,…,a_Na1,a2,…,aN。 你可以对石子堆进行合并操作,将两个相邻的石子堆合并为一个石子堆,例如,如果 a[1,2,3,4,5]a[1,2,3,4,5]a[1,2,3,4,5],合并第 2,32…...
【Selenium学习】Selenium 中常用的基本方法
1.send_keys 方法模拟键盘键入此方法类似于模拟键盘键入。以在百度首页搜索框输入“Selenium”为例,代码如下:# _*_ coding:utf-8 _*_ """ name:zhangxingzai date:2023/2/13 form:《Selenium 3Python 3自动化测试项目实战》 …...
python练习——简化路径
项目场景: 给你一个字符串 path ,表示指向某一文件或目录的 Unix 风格 绝对路径 (以 /开头),请你将其转化为更加简洁的规范路径。在 Unix 风格的文件系统中,一个点(.)表示当前目录本…...
2023新华为OD机试题 - 火星文计算2(JavaScript) | 刷完必过
火星文计算 2 题目 已知火星人使用的运算符号为#;$ 其与地球人的等价公式如下 x#y=4*x+3*y+2 x$y=2*x+y+3 x y是无符号整数 地球人公式按照 c 语言规则进行计算 火星人公式中#符优先级高于$ 相同的运算符按从左到右的顺序运算 输入 火星人字符串表达式结尾不带回车换行 输入…...
前端插件重磅来袭
“你值得拥有”专栏系列上新啦,今日推出“手写前端插件”项目,作为一个前端中高级工程师,手写前端树形菜单插件、弹出层插件、日历插件、分页插件、选项卡插件、进度条插件等是必备的技能,让你的前端技术百尺竿头更进一步…...
深入工厂|高精密多层板是如何被智造出来的?
或许有很多人从网络上见过各种教程,告诉你单层板是什么,多层板是什么,他们该如何做出来,但是在具体制造时却全凭想象,今天,就让我们来实地看看,精密的多层板是如何被制造出来的!今天…...
代理模式动态代理
什么是代理模式? 代理模式是开发中常见的一种设计模式,使用代理模式可以很好的对程序进行横向扩展。代理,顾名思义就是一个真实对象会存在一个代理对象,并且代理对象可以替真实对象完成相应操作,外部通过代理对象来访…...
Mysql之二进制日志
目录 二进制日志 12-37 二进制日志格式 基于行的二进制日志 基于语句的二进制日志 混合格式二进制日志 复制日志 12-42 故障安全 (Crash-Safe) 复制 多源复制 二进制日志 12-37 二进制日志: • 包含数据和模式更改及其时间戳 – 基于语句 或 基于行 的日志…...
kail工具的使用--- cewl
1.介绍 Cewl是一款采用Ruby开发的应用程序,可以给他的爬虫指定URL地址和爬取深度,还可以添加外部链接,接下来Cewl会给你返回一个字典文件,你可以把字典用到类似John the Ripper这样的密码破解工具中。 2.使用 输入以下命令之后…...
【蓝桥杯集训1】前缀和专题(2 / 5)
目录 前缀和模板 !3956. 截断数组 - 前缀和枚举 前缀和模板 活动 - AcWing import java.util.*;class Main {static int N100010;static int[] anew int[N],snew int[N];public static void main(String[] args){Scanner scnew Scanner(System.in);int nsc.nex…...
基于模块联邦的微前端实现方案
一、 微前端应用案例概述 当前案例中包含三个微应用,分别为 Marketing、Authentication 和 Dashboard Marketing:营销微应用,包含首页组件和价格组件 Authentication:身份验证微应用,包含登录组件 Dashboard&#x…...
【单目标优化算法】食肉植物优化算法(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...
css3笔记 (1) 自用
outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size:0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格ÿ…...
Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?
Redis 的发布订阅(Pub/Sub)模式与专业的 MQ(Message Queue)如 Kafka、RabbitMQ 进行比较,核心的权衡点在于:简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...
在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案
这个问题我看其他博主也写了,要么要会员、要么写的乱七八糟。这里我整理一下,把问题说清楚并且给出代码,拿去用就行,照着葫芦画瓢。 问题 在继承QWebEngineView后,重写mousePressEvent或event函数无法捕获鼠标按下事…...
【C++特殊工具与技术】优化内存分配(一):C++中的内存分配
目录 一、C 内存的基本概念 1.1 内存的物理与逻辑结构 1.2 C 程序的内存区域划分 二、栈内存分配 2.1 栈内存的特点 2.2 栈内存分配示例 三、堆内存分配 3.1 new和delete操作符 4.2 内存泄漏与悬空指针问题 4.3 new和delete的重载 四、智能指针…...
DingDing机器人群消息推送
文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人,点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置,详见说明文档 成功后,记录Webhook 2 API文档说明 点击设置说明 查看自…...
深入理解Optional:处理空指针异常
1. 使用Optional处理可能为空的集合 在Java开发中,集合判空是一个常见但容易出错的场景。传统方式虽然可行,但存在一些潜在问题: // 传统判空方式 if (!CollectionUtils.isEmpty(userInfoList)) {for (UserInfo userInfo : userInfoList) {…...
wpf在image控件上快速显示内存图像
wpf在image控件上快速显示内存图像https://www.cnblogs.com/haodafeng/p/10431387.html 如果你在寻找能够快速在image控件刷新大图像(比如分辨率3000*3000的图像)的办法,尤其是想把内存中的裸数据(只有图像的数据,不包…...
Qt 事件处理中 return 的深入解析
Qt 事件处理中 return 的深入解析 在 Qt 事件处理中,return 语句的使用是另一个关键概念,它与 event->accept()/event->ignore() 密切相关但作用不同。让我们详细分析一下它们之间的关系和工作原理。 核心区别:不同层级的事件处理 方…...
Kubernetes 网络模型深度解析:Pod IP 与 Service 的负载均衡机制,Service到底是什么?
Pod IP 的本质与特性 Pod IP 的定位 纯端点地址:Pod IP 是分配给 Pod 网络命名空间的真实 IP 地址(如 10.244.1.2)无特殊名称:在 Kubernetes 中,它通常被称为 “Pod IP” 或 “容器 IP”生命周期:与 Pod …...
