当前位置: 首页 > news >正文

MySQL 的 datetime等日期和时间处理SQL函数及格式化显示

MySQL 的 datetime等日期和时间处理SQL函数及格式化显示

MySQL 时间相关的SQL函数:

  1. 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)

  1. MySQL的SQL Date函数

NOW():返回当前的日期和时间

CURDATE():返回当前的日期

CURTIME():返回当前的时间

DATE():提取日期或日期/时间表达式的日期部分

EXTRACT():返回日期/时间按的单独部分

DATE_ADD():给日期添加指定的时间间隔

DATE_SUB():从日期减去指定的时间间隔

DATEDIFF():返回两个日期之间的天数

DATE_FORMAT():用不同的格式显示日期/时间

  1. 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届春招开始啦! 同花顺是国内首家上市的互联网金融信息服务平台,如果你对互联网金融感兴趣,如果你有志向在人工智能方向发挥所长,如果你也是一个激情澎湃的小伙伴,欢迎加入我们!岗位类别&#xf…...

深入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 语言规则进行计算 火星人公式中#符优先级高于$ 相同的运算符按从左到右的顺序运算 输入 火星人字符串表达式结尾不带回车换行 输入…...

前端插件重磅来袭

“你值得拥有”专栏系列上新啦,今日推出“手写前端插件”项目,作为一个前端中高级工程师,手写前端树形菜单插件、弹出层插件、日历插件、分页插件、选项卡插件、进度条插件等是必备的技能,让你的前端技术百尺竿头更进一步&#xf…...

深入工厂|高精密多层板是如何被智造出来的?

或许有很多人从网络上见过各种教程,告诉你单层板是什么,多层板是什么,他们该如何做出来,但是在具体制造时却全凭想象,今天,就让我们来实地看看,精密的多层板是如何被制造出来的!今天…...

代理模式动态代理

什么是代理模式? 代理模式是开发中常见的一种设计模式,使用代理模式可以很好的对程序进行横向扩展。代理,顾名思义就是一个真实对象会存在一个代理对象,并且代理对象可以替真实对象完成相应操作,外部通过代理对象来访…...

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…...

ANTLR4入门学习(四)

ANTLR4入门学习(四)一、设计语法1.语法2.ANTLR核心标记3.常见计算机语言模式4.左右递归5.识别常见的语法结构5.1 匹配标识符5.2 匹配数字5.3 匹配字符串常量5.4 匹配注释和空白字符5.5 基础的语法规则5.6 划定词法分析器和语法分析器的界线一、设计语法 …...

Android okhttp3中发送websocket消息,并通过mockwebserver将一个安卓设备模拟成服务器接发消息

websocket 提供了客户端和服务端的长链接&#xff0c;允许客户端和服务端双向发送消息 okhttp 提供了使用websocket 相关接口议。同时为方便单元测试&#xff0c;又提供了mockwebserver可以把一个安卓客户端作为服务端接受消息。 websocket使用 权限 <uses-permission an…...

MySQL系统变量和自定义变量

1 系统变量1.1 查看系统变量可以使用以下命令查看 MySQL 中所有的全局变量信息。SHOW GLOBAL VARIABLES; MySQL 中的系统变量以两个“”开头。global 仅仅用于标记全局变量&#xff1b;session 仅仅用于标记会话变量&#xff1b;首先标记会话变量&#xff0c;如果会话变量不存在…...

基于Python来爬取某音动态壁纸,桌面更香了!

至于小伙伴们想要这个封图&#xff0c;我也没有。不过继续带来一波靓丽壁纸&#xff0c;而且是动态的&#xff0c;我的桌面壁纸又换了&#xff1a;每天换着花样欣赏一波波动态壁纸桌面立刻拥有了高颜值&#xff0c;简直跟刷美女短视频一样啊。对的&#xff0c;这些动态壁纸就是…...

[数据库]表的约束

●&#x1f9d1;个人主页:你帅你先说. ●&#x1f4c3;欢迎点赞&#x1f44d;关注&#x1f4a1;收藏&#x1f496; ●&#x1f4d6;既选择了远方&#xff0c;便只顾风雨兼程。 ●&#x1f91f;欢迎大家有问题随时私信我&#xff01; ●&#x1f9d0;版权&#xff1a;本文由[你帅…...

VisualGDB 5.6R9 FOR WINDOWS

Go cross-platform with comfort VisualGDB 是 Visual Studio 的一个非常强大的扩展&#xff0c;它允许您调试或调试嵌入式系统。这个程序有一个非常有吸引力的用户界面&#xff0c;它有许多调试或调试代码的功能。VisualGDB 还有一个向导可以帮助您调试程序&#xff0c;为您提…...

Yolov8的多目标跟踪实现

Yolov8_tracking 2023年2月&#xff0c;Yolov5发展到yolov8&#xff0c;这世界变得真快哦。Yolov8由ultralytics公司发布&#xff0c;yolov6-美团&#xff0c;yolov7-Alexey Bochkovskiy和Chien-Yao Wang&#xff0c;其各有高招&#xff0c;对yolov5均有提升。mikel-brostrom在…...

28--Django-后端开发-drf之自定义全局异常、接口文档生成以及三大认证源码分析

一、django请求的整个生命周期 旅程: drf处于的位置:路由匹配成功,进视图类之前 1、包装了新的request 2、处理了编码(urlencoded,formdata,json) 3、三大认证 4、进了视图类(GenericAPIView+ListModelMixin) 进行了过滤和排序去模型中取数据分页序列化返回5、处理了…...

【MyBatis】动态SQL

9、动态SQL Mybatis框架的动态SQL技术是一种根据特定条件动态拼装SQL语句的功能&#xff0c;它存在的意义是为了解决拼接SQL语句字符串时的痛点问题。 9.1、if if标签可通过test属性的表达式进行判断&#xff0c;若表达式的结果为true&#xff0c;则标签中的内容会执行&…...

LeetCode(剑指offer) Day1

1.用两个栈实现一个队列。队列的声明如下&#xff0c;请实现它的两个函数 appendTail 和 deleteHead &#xff0c;分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素&#xff0c;deleteHead 操作返回 -1 ) 解题过程记录&#xff1a;本题就是用两个栈&…...

昆明做网站建设有哪些/百度推广竞价

题目链接&#xff1a; D. Walking Between Houses 题意&#xff1a; 现在有n个房子排成一列&#xff0c;编号为1~n&#xff0c;起初你在第1个房子里&#xff0c;现在你要进行k次移动&#xff0c;每次移动一都可以从一个房子i移动到另外一个其他的房子j里&#xff08;i ! j&a…...

rp如何做网站/关键词seo服务

使用集群是网站解决高并发、海量数据问题的常用手段。当一台服务器的处理能力、存储空间不足时&#xff0c;不要企图去更换更强大的服务器&#xff0c;对大型服务器而言&#xff0c;不管多么强大的服务器&#xff0c;都满足不了网站持续增长的业务需求。这种情况下&#xff0c;…...

网站建设与管理专业就业前景/aso优化软件

在c语言中pow()函数是用来求x的y次幂。x、y及函数值都是double型 &#xff0c;其语法为“double pow(double x, double y)”&#xff1b;其中参数“double x”表示底数&#xff1b;参数“double y”表示指数。pow()函数用来求x的y次幂&#xff0c;x、y及函数值都是double型 &am…...

做网站平台的公司/搜索引擎是什么意思

&#xfeff;&#xfeff;问题描述试题编号&#xff1a; 201312-4 试题名称&#xff1a; 有趣的数 时间限制&#xff1a; 1.0s 内存限制&#xff1a; 256.0MB 问题描述&#xff1a; 问题描述我们把一个数称为有趣的&#xff0c;当且仅当&#xff1a;1. 它的数字只包含0, 1, 2, …...

漳州城乡和建设局网站首页/网站推广排名收费

零钱兑换 JS实现题目描述&#xff08;LeetCode&#xff09;动态规划题目描述&#xff08;LeetCode&#xff09; 先看下官方描述&#xff1a; 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff1a;https://leetcode-cn.com/problems/coin-change 给你一个整…...

企业网站制作心得/外链信息

分层好处&#xff1a; 1&#xff0c;复杂问题简单化&#xff1a;将复杂的任务分解成多层来完成&#xff0c;每一层只处理简单的任务&#xff0c;方便定位问题 2&#xff0c;减少重复开发&#xff1a;规范数据分层&#xff0c;通过中间层数据&#xff0c;能够减少极大的重复计算…...