常用的MySQL日期、时间函数

news2024/9/27 12:03:56

1、日期/时间获取函数

函数名

描述

实例

CURDATE()

返回当前日期

SELECT CURDATE(); -> 2018-09-19

CURRENT_DATE()

返回当前日期

SELECT CURRENT_DATE(); -> 2018-09-19

CURRENT_TIME

返回当前时间

SELECT CURRENT_TIME(); -> 19:59:02

CURTIME()

返回当前时间

SELECT CURTIME(); -> 19:59:02

CURRENT_TIMESTAMP()        

返回当前日期和时间

SELECT CURRENT_TIMESTAMP() -> 2018-09-19 20:57:43

LOCALTIME()

返回当前日期和时间

SELECT LOCALTIME() -> 2018-09-19 20:57:43

LOCALTIMESTAMP()

返回当前日期和时间

SELECT LOCALTIMESTAMP() -> 2018-09-19 20:57:43

NOW()

返回当前日期和时间

SELECT NOW() -> 2018-09-19 20:57:43

SYSDATE()

返回当前日期和时间

SELECT SYSDATE() -> 2018-09-19 20:57:43

 2、获取日期/时间中的部分

函数名

描述

实例

YEAR(d)

返回年份

SELECT YEAR("2017-06-15"); -> 2017

QUARTER(d)

返回日期d是第几季节,返回 1 到 4

SELECT QUARTER('2011-11-11 11:11:11') -> 4

MONTH(d)

返回日期d中的月份值,1 到 12

SELECT MONTH('2011-11-11 11:11:11') ->11

MONTHNAME(d)

返回日期当中的月份名称,如 November

SELECT MONTHNAME('2011-11-11 11:11:11') -> November

DAY(d)

返回日期值 d 的日期部分

SELECT DAY("2017-06-15"); -> 15

DAYNAME(d)

返回日期 d 是星期几,如 Monday,Tuesday

SELECT DAYNAME('2011-11-11 11:11:11') ->Friday

DAYOFMONTH(d)

计算日期 d 是本月的第几天

SELECT DAYOFMONTH('2011-11-11 11:11:11') ->11

DAYOFWEEK(d)        

日期 d 今天是星期几,1 星期日,2 星期一,以此类推

SELECT DAYOFWEEK('2011-11-11 11:11:11') ->6

WEEKDAY(d)

日期 d 是星期几,0 表示星期一,1 表示星期二

SELECT WEEKDAY("2017-06-15"); -> 3

DAYOFYEAR(d)

计算日期 d 是本年的第几天

SELECT DAYOFYEAR('2011-11-11 11:11:11') ->315

LAST_DAY(d)

返回给给定日期的那一月份的最后一天

SELECT LAST_DAY("2017-06-20"); -> 2017-06-30

HOUR(t)

返回 t 中的小时值

SELECT HOUR('1:2:3') -> 1

MINUTE(t)

返回 t 中的分钟值

SELECT MINUTE('1:2:3') -> 2

SECOND(t)

返回 t 中的秒钟值

SELECT SECOND('1:2:3') -> 3

TIME(expression)

提取传入表达式的时间部分

SELECT TIME("19:30:10"); -> 19:30:10

WEEKOFYEAR(d)

计算日期 d 是本年的第几个星期,范围是 0 到 53

SELECT WEEKOFYEAR('2011-11-11 11:11:11') -> 45

WEEK(d)

计算日期 d 是本年的第几个星期,范围是 0 到 53

SELECT WEEK('2011-11-11 11:11:11') -> 45

YEARWEEK(date, mode)

返回年份及第几周(0到53),mode 中 0 表示周天,1表示周一,以此类推

SELECT YEARWEEK("2017-06-15"); -> 201724

EXTRACT(type FROM d)        

从日期 d 中获取指定的值,type 指定返回的值。                 
type可取值为:

·MICROSECOND

·SECOND

·MINUTE

·HOUR

·DAY

·WEEK

·MONTH

·QUARTER

·YEAR

·SECOND_MICROSECOND

·MINUTE_MICROSECOND

·MINUTE_SECOND

·HOUR_MICROSECOND

·HOUR_SECOND

·HOUR_MINUTE

·DAY_MICROSECOND

·DAY_SECOND

·DAY_MINUTE

·DAY_HOUR        

·YEAR_MONTH

SELECT EXTRACT(MINUTE FROM '2011-11-11 11:11:11') -> 11

TIME(expression)

提取传入表达式的时间部分

SELECT TIME("19:30:10"); -> 19:30:10

 

3、日期/时间计算函数

函数名

描述

实例

ADDDATE(d,n)

计算起始日期 d 加上 n 天的日期

SELECT ADDDATE("2017-06-15", INTERVAL 10 DAY); ->2017-06-25

DATE_ADD(d,INTERVAL expr type)

计算起始日期 d 加上一个时间段后的日期,type 值可以是:

·MICROSECOND

·SECOND

·MINUTE

·HOUR

·DAY

·WEEK

·MONTH

·QUARTER

·YEAR

·SECOND_MICROSECOND

·MINUTE_MICROSECOND

·MINUTE_SECOND

·HOUR_MICROSECOND

·HOUR_SECOND        

·HOUR_MINUTE

·DAY_MICROSECOND

·DAY_SECOND

·DAY_MINUTE

·DAY_HOUR

·YEAR_MONTH

SELECT DATE_ADD("2017-06-15", INTERVAL 10 DAY); -> 2017-06-25

SELECT DATE_ADD("2017-06-15 09:34:21", INTERVAL 15 MINUTE); -> 2017-06-15 09:49:21

SELECT DATE_ADD("2017-06-15 09:34:21", INTERVAL -3 HOUR); ->2017-06-15 06:34:21

SELECT DATE_ADD("2017-06-15 09:34:21", INTERVAL -3 HOUR); ->2017-04-15

SUBDATE(d,n)

日期 d 减去 n 天后的日期

SELECT SUBDATE('2011-11-11 11:11:11', 1) ->2011-11-10 11:11:11 (默认是天)

DATE_SUB(date,INTERVAL expr type)

函数从日期减去指定的时间间隔。

Orders 表中 OrderDate 字段减去 2 天:

SELECT OrderId,DATE_SUB(OrderDate,INTERVAL 2 DAY) AS OrderPayDate FROM Orders

ADDTIME(t,n)

n 是一个时间表达式,时间 t 加上时间表达式 n

加 5 秒:

SELECT ADDTIME('2011-11-11 11:11:11', 5); ->2011-11-11 11:11:16 (秒)

添加 2 小时, 10 分钟, 5 秒:

SELECT ADDTIME("2020-06-15 09:34:21", "2:10:5"); -> 2020-06-15 11:44:26        

SUBTIME(t,n)

时间 t 减去 n 秒的时间

SELECT SUBTIME('2011-11-11 11:11:11', 5) ->2011-11-11 11:11:06 (秒)

DATEDIFF(d1,d2)

计算日期 d1->d2 之间相隔的天数

SELECT DATEDIFF('2001-01-01','2001-02-02') -> -32

TIMEDIFF(time1, time2)

计算时间差值

mysql> SELECT TIMEDIFF("13:10:11", "13:10:10"); -> 00:00:01

mysql> SELECT TIMEDIFF('2000:01:01 00:00:00', -> '2000:01:01 00:00:00.000001'); -> '-00:00:00.000001'

mysql> SELECT TIMEDIFF('2008-12-31 23:59:59.000001', -> '2008-12-30 01:01:01.000002'); -> '46:58:57.999999'

TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)        

计算时间差,返回 datetime_expr2  datetime_expr1 的时间差

mysql> SELECT TIMESTAMPDIFF(DAY,'2003-02-01','2003-05-01'); // 计算两个时间相隔多少天 -> 89

mysql> SELECT TIMESTAMPDIFF(MONTH,'2003-02-01','2003-05-01'); // 计算两个时间相隔多少月 -> 3

mysql> SELECT TIMESTAMPDIFF(YEAR,'2002-05-01','2001-01-01'); // 计算两个时间相隔多少年 -> -1

mysql> SELECT TIMESTAMPDIFF(MINUTE,'2003-02-01','2003-05-01 12:05:55'); // 计算两个时间相隔多少分钟 -> 128885

 

4、日期/时间格式化函数

DATE_FORMAT():用于将日期格式化为指定的格式。

-- 日期/时间格式化函数
SELECT
	DATE_FORMAT ( NOW (), '%Y-%m-%d' ),
	DATE_FORMAT ( NOW (), '%Y/%m/%d' ),
	DATE_FORMAT ( NOW (), '%Y-%m-%d %H:%i:%s' ),
	DATE_FORMAT ( NOW (), '%Y-%m-%d %H:00:00' ) -- 获取当前日期的整点       
	,DATE_FORMAT(NOW(),'%y-%M-%D');

 

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

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

相关文章

Java刷题:最小k个数

目录 题目描述: 思路: 具体实现 整体建立一个大小为N的小根堆 通过大根堆实现 完整代码 力扣链接:面试题 17.14. 最小K个数 - 力扣(LeetCode) 题目描述: 设计一个算法,找出数组中最小的…

【Java 问题】基础——异常

接上文 异常 39.Java 中异常层级结构?40.异常的处理机制?41.三道经典异常处理代码题 39.Java 中异常层级结构? Java的异常是分为多层的。 Throwable 是 Java 语言中所有错误或异常的基类。 Throwable 又分为 Error 和 Exception ,其中Error是系统内部…

从‘盲管’到‘智网’,漫途精准构建排水管网监测方案

在城市错综复杂的基础设施网络中,排水管网作为城市的“血脉”,其高效、稳定运行直接关系到城市生活的安宁与财产的安全。面对日益频繁的雨季挑战与气候变化的不确定性,传统“盲管”管理模式已难以满足现代城市治理的需求。 漫途排水管网监测…

本地Docker部署高颜值跨平台照片管理软件lmmich并远程上传图片

文章目录 前言1.关于Immich2.安装Docker3.本地部署Immich4.Immich体验5.安装cpolar内网穿透6.创建远程链接公网地址7.使用固定公网地址远程访问 前言 本篇文章介绍如何在本地搭建lmmich图片管理软件,并结合cpolar内网穿透实现公网远程访问到局域网内的lmmich&#…

Python新手学习过程记录之基础环境:环境变量、版本区分、虚拟环境

https://img-blog.csdnimg.cn/img_convert/0604267530a515112e51dfc80d0b0ee7.png 刚开始接触Python并学习一门开发语言,可能就会遇到一些棘手的问题,比如电脑上不知不觉已经安装了多个python版本,python3.8/3.10/3.11,甚至一些软件中也集成有python解释器;那么我编…

c语言:知识补充

c语言中编译开始会对#define&#xff0c;#include等内容做预处理&#xff0c;可以用#define写一些简单函数&#xff0c;方便使用 #include <stdio.h> #include <stdlib.h>#define MAX(A, B) ((A) > (B) ? (A) : (B))int main(){printf("%d\n", MAX(…

【Java 集合】List接口 —— ArrayList 与 LinkedList 详解

List接口继承自Collection接口&#xff0c;是单列集合的一个重要分支。 在List集合中允许出现重复的元素&#xff0c;所有的元素是以一种线性方式进行存储的&#xff0c;在程序中可以通过索引&#xff08;类似于数组中的元素角标&#xff09;来访问集合中的指定元素。另外&…

onload_tcpdump命令抓包报错Onload stack [7,] already has tcpdump process

最近碰到Onload 不支持同时运行多个 tcpdump 进程的报错&#xff0c;实际上使用了ps查询当时系统中并没有tcpdump相关进程存在。需要重启服务器本机使用onload加速的相关进程后才能使用onload_tcpdump正常抓包&#xff0c;很奇怪&#xff0c;之前确实没遇到这样的问题&#xff…

生成速度提升70%,32K版本上新,讯飞星火API全新升级!

从“通用”到“真正有用”&#xff0c;大模型应用价值正在释放&#xff01;在C端&#xff0c;AI会议、AI绘图、AI音乐、AI PPT、AI视频等新兴应用层出不穷。在B端&#xff0c;大模型在智能客服、智能营销、知识问答等场景中的应用效果开始显现。 对于绝大多数AI开发者和中小型…

easyExcel使用模版填充excel,合并单元格

一、最终效果 二、制作模版 1、制作填充模版 模版在代码中保存的位置 2、Controller /*** 下载模板*/ RequestMapping(value "exportData") public void exportData(KqKqb kqKqb,HttpServletResponse response, HttpServletRequest request) throws IOExceptio…

大模型时代,程序员能保住头发吗?

10月24日&#xff0c;位于安徽合肥的奥林匹克体育中心&#xff0c;正在举行一场大型科技峰会&#xff0c;奔涌而入的人潮&#xff0c;很快就将主会场挤了个满。这是科大讯飞主办的第六届世界声博会暨2023全球1024开发者节的现场。自2017年以来&#xff0c;这家公司每年都会在10…

如何选择高品质SD卡

如何选择高品质SD卡 SD卡&#xff08;Secure Digital Memory Card&#xff09;是一种广泛使用的存储器件&#xff0c;因其快速的数据传输速度、可热插拔的特性以及较大的存储容量&#xff0c;广泛应用于各种场景&#xff0c;例如在便携式设备如智能手机、平板电脑、运动相机等…

修改timeout问题

1. vad超时时间为10s&#xff0c;10s会出现一个空识别。 解决办法一&#xff1a; 修改/usr/aispeech/conf/duiPlus.cof中的的vad下面的timeout为100000 传给duiPlusNew的vad.timeout要增加&#xff0c;暂时设置为100000&#xff0c;注意单实例配置、多实例配置只需要设置子实例…

【算法】DFS 系列之 穷举/暴搜/深搜/回溯/剪枝(上篇)

【ps】本篇有 9 道 leetcode OJ。 目录 一、算法简介 二、相关例题 1&#xff09;全排列 .1- 题目解析 .2- 代码编写 2&#xff09;子集 .1- 题目解析 .2- 代码编写 3&#xff09;找出所有子集的异或总和再求和 .1- 题目解析 .2- 代码编写 4&#xff09;全排列 II…

PostgreSQL 17 发布了!非常稳定的版本

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 作者&#xff1a;IT邦德 中国DBA联盟(ACDU)成员&#xff0c;10余年DBA工作经验&#xff0c; Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主&#xff0c;全网粉丝10万 擅长主流Oracle、My…

springboot+大数据基于数据挖掘的招聘信息可视化大屏系统【内含源码+文档+部署教程】

博主介绍&#xff1a;✌全网粉丝10W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业毕业设计项目实战6年之久&#xff0c;选择我们就是选择放心、选择安心毕业✌ &#x1f345;由于篇幅限制&#xff0c;想要获取完整文章或者源码&#xff0c;或者代做&am…

以到手价为核心的品牌电商价格监测

在当今竞争激烈的电商时代&#xff0c;品牌的价格监测至关重要。传统的页面价监测已无法满足品牌对渠道管控的需求&#xff0c;而到手价监测则成为品牌控价的关键所在。 力维网络&#xff0c;作为深耕数据监测服务多年的专业机构&#xff0c;拥有自主开发的数据监测系统&#…

对spring框架的搭建进行封装---springboot

目录 一.回顾spring 二.springboot概述 三.springboot的特点 四.springboot环境搭建 五.springboot配置文件 六.springboot数据访问管理 七.springboot注解 八.springboot集成mybatis 九.springboot全局异常捕获与处理 一.回顾spring 优点 开源,轻量级,非侵入式的一站式…

Springboot + netty + rabbitmq + myBatis

目录 0.为什么用消息队列1.代码文件创建结构2.pom.xml文件3.三个配置文件开发和生产环境4.Rabbitmq 基础配置类 TtlQueueConfig5.建立netty服务器 rabbitmq消息生产者6.建立常规队列的消费者 Consumer7.建立死信队列的消费者 DeadLetterConsumer8.建立mapper.xml文件9.建立map…

Visual Studio导出动态库

1、创建新项目&#xff0c;选择如下 2、工程目录结构如下 3、编写pch.h文件&#xff0c;内容如下 // pch.h: 这是预编译标头文件。 // 下方列出的文件仅编译一次&#xff0c;提高了将来生成的生成性能。 // 这还将影响 IntelliSense 性能&#xff0c;包括代码完成和许多代码浏…