百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

mysql查询-日期操作 mysql查询日期格式

lipiwang 2024-10-18 09:42 11 浏览 0 评论

本文简单讲解我们在编写sql时会使用到的有关日期的sql写法:

首先要介绍常用的日期类的函数,其次在根据函数来演示常见的日期操作的写法。

以下函数或者关键字加0(+0)后会将日期时间、日期、时间、字符串转换为数字!

目录

一、常用函数: - 1 -

1、获取当前日期和时间 - 1 -

2、 获取当前日期 - 1 -

3、 获取当前时间 - 1 -

4、 返回指定日期/时间表达式的日期部分或将文本转为日期格式 - 2 -

5、 返回日期时间中的年、月、日、时、分、秒。 - 2 -

6、 返回日期时间对应的季节、一年的第几天、月份名称、星期几的索引和星期名称。 - 2 -

7、 根据日期时间返回时间戳 - 2 -

8、 根据时间戳返回日期时间 - 3 -

9、 返回日期的天数(从0开始计算) - 3 -

10、 格式化日期(日期时间转换为字符串) - 3 -

11、 将字符串转换为日期时间 - 3 -

12、 返回两个日期时间的时间差 - 4 -

13、 返回两个日期的相差天数 - 4 -

14、 返回两个日期时间的间隔时间 - 4 -

15、 对日期时间进行加减运算 - 4 -

二、 操作篇: - 5 -

一、常用函数:

1、获取当前日期和时间

使用now()函数可以获取当前系统的日期和时间

例:select now(); --2022-08-17 14:13:20

select now()+0; --20220817141320

获取当前日期

使用current_date关键字或者curdate()current_date()函数可以获取当前系统的日期

例:select curdate(); --2022-08-17

select curdate()+0; --20220817

select current_date; --2022-08-17

select current_date(); --2022-08-17

获取当前时间

使用current_time关键字或者curtime()、current_time()函数可以获取当前系统的时间

例:select curtime(); --14:13:20

select curtime()+0; --141320

select current_time; --14:13:20

select current_time(); --14:13:20

返回指定日期/时间表达式的日期部分或将文本转为日期格式

使用date()函数可以获取日期部分

例:select date('2022-7-8'); --2022-07-08

select date('2022-7-8')+0; --20220708

select date(now()); --2022-07-08

*这里返回的是日期格式!

返回日期时间中的年、月、日、时、分、秒。

year()函数返回年份1000~9999

例:select year('2022-8-17 11:30:48'); --2022

month()函数返回月份1~12

例:select month('2022-8-17 11:30:48'); --8

day()/dayofmonth()函数返回第几日1~31

例:select day('2022-8-17 11:30:48'); --17

hour()函数返回小时0~23

例:select hour('2022-8-17 11:30:48'); --11

minute()函数返回分0~59

例:select minute('2022-8-17 11:30:48'); --30

second()函数返回秒0~59

例:select second('2022-8-17 11:30:48'); --48

返回日期时间对应的季节、一年的第几天、月份名称、星期几的索引和星期名称。

quarter()函数返回季节1~4 (春、夏、秋、东)

例:select quarter('2022-8-22 16:07:51'); --3

dayofyear()函数返回一年的第几天1~366

例:select dayofyear('2022-8-22 16:07:51'); --234

monthname()函数返回月份对应的名称(英文)

例:select monthname('2022-8-22 16:07:51'); --August (8月)

weekday()函数返回星期索引(0=星期一,1=星期二, ……6= 星期天)

例:select weekday('2022-8-22 16:07:51'); --0 (星期一)

dayofweek()函数返回星期索引(1=星期天,2=星期一, ……7=星期六)。这些索引值对应于ODBC标准。

例:select dayofweek('2022-8-22 16:07:51'); --2 (星期一)

dayname()函数返回星期的名称(英文)

例:select dayname('2022-8-22 16:07:51'); --Monday (星期一)

根据日期时间返回时间戳

函数:unix_timestamp([date])

函数说明:返回一个unix时间戳(从'1970-01-01 00:00:00'开始的秒数,date默认值为当前时间)

参数说明:date 日期时间(此参数不填则为系统时间)

例:select unix_timestamp(); --1660895587

select unix_timestamp('2022-8-19 15:53:01'); --1660895581

根据时间戳返回日期时间

函数:from_unixtime(unix_timestamp)

函数说明:以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的值(根据返回值所处上下文是字符串或数字)

参数说明:unix_timestamp 时间戳

例:select from_unixtime(1660895581); --2022-08-19 15:53:01

select from_unixtime(1660895581)+0; --20220819155301

返回日期的天数(从0开始计算)

函数:to_days(datetime)

函数说明:返回0到指定日期的天数

参数说明:datetime 日期/日期时间

例:select to_days(now()); --738754

select to_days('2022-8-22'); --738754

格式化日期(日期时间转换为字符串)

函数:date_format(date,format)

函数说明: 根据格式串format 格式化?期或?期和时间值date,返回结果串(一般情况用户获取日期的年月日和时间)

参数说明: date 日期/日期时间 format 格式串

format格式串中可用标志符:

%M

月名字(january……december)

%b

缩写的月份名字(jan……dec)

%Y

年,数字,4位

%y

年,数字,2位

%d

月份中的天数,数字(00,01,...31)

%e

月份中的天数,数字(0,1,...31)

%m

月,数字(01,02,...12)

%c

月,数字(1,2,...12)

%h

十二时制的小时(00,01,...12)

%k

二十四时制的小时(0,1,...23)

%i

分钟, 数字(00,01,...59)

%r

时间,12 小时(hh:mm:ss [ap]m)

%s

秒(00……59) %p am或pm

%j

一年中的天数(001,002,...366)

%w

一个星期中的天数(0=sunday(星期天) ...6=saturday(星期六) )

%u

一年中的周数(1,2,...53)

例:

select date_format('2022-3-11 12:15:51','%Y-%m-%d'); --2022-03-11

select date_format('2022-3-11 12:15:51','%r@@@%M###%w'); --12:15:51 PM@@@March###5

select date_format(now(),'%k:%i:%s'); --9:21:50

将字符串转换为日期时间

函数:str_to_date(str,format)

函数说明:将指定的时间格式的字符串按照格式转换为日期时间类型的值。str要与format的格式保持一致,否则会报错。

参数说明: str 时间格式的字符串 format 格式串

format格式串中可用标志符:

%Y

年,数字,4位

%s

秒(00……59) %p am或pm

%d

月份中的天数,数字(00,01,...31)

%e

月份中的天数,数字(0,1,...31)

%m

月,数字(01,02,...12)

%c

月,数字(1,2,...12)

%h

十二时制的小时(00,01,...12)

%k

二十四时制的小时(0,1,...23)

%i

分钟, 数字(00,01,...59)

%r

时间,12 小时(hh:mm:ss [ap]m)

例:

select str_to_date('2022-8-21','%Y-%m-%d'); --2022-08-21

select str_to_date('2022-8-1 1:20:51','%Y-%c-%e %r'); --2022-08-01 01:20:51

返回两个日期时间的时间差

函数:timestampdiff(type,expr1,expr2)

函数说明:返回起始日expr1和结束日expr2之间的时间差整数。时间差的单位由type指定

参数说明: type 时间差单位 expr1 起始日期/日期时间 expr2 结束日期/日期时间

type中的时间差单位如下:

second

day

minute

month

hour

year

例:

select timestampdiff(hour,'2022-8-18 12:45:12','2022-8-18 16:12:51'); --3

select timestampdiff(day,'2022-8-18','2022-8-20'); --2

select timestampdiff(day,'2021-8-18','2022-8-20'); --367

select timestampdiff(day,'2022-8-20 17:45:51','2022-8-22 16:35:51'); --1 *这里为什么不是2?因为起始日期是从17:45:51开始计算的,结束日期的时分秒没超过这个时间就不足一天

返回两个日期的相差天数

函数:datediff(date1 ,date2)

函数说明:计算两个日期间隔的天数,即#date1 - date2

参数说明:date1 日期1 date2 日期2

例:select datediff('2022-8-31','2022-7-11'); --51

select datediff('2022-8-31 2:10:10','2022-7-11 4:10:10'); --51

返回两个日期时间的间隔时间

函数说明:timediff(time1,time2)

函数说明:计算两个时间的间隔时间,即time1-time2。注意的是两个时间的格式必须一致!

参数说明:time1 时间1 time2 时间2

例:select timediff('10:15:21','6:02:12'); --04:13:09


对日期时间进行加减运算

函数:① adddate(date,interval expr type) -加

date_add(date,interval expr type) -加

subdate(date,interval expr type) -减

date_sub(date,interval expr type) -减

以上函数说明:其中,date是一个日期或日期时间的值;expr是对date进行加减法的一个表达式字符串或一个数字;type指明表达式expr应该如何被解释,是减去1天还是一年等。

type和expr的对应关系:

type值

含义

expr格式

second

seconds

minute

分钟

minutes

hour

hours

day

days

month

months

year

years

Minute_second

分钟和秒

“minutes:seconds”

Hour_minute

小时和分钟

“hours:minutes”

day_hour

天和小时

“days-hours”

year_month

年和月

“years-months”

hour_second

小时,分钟和秒

“hours:minutes:seconds”

day_minute

天,小时和分钟

“days hours:minutes”

day_second

天,小时,分钟和秒

“days hours:minutes:seconds”

例:

select adddate('2022-8-19 15:22:12',interval 2 hour); --2022-08-19 17:22:12

select adddate('2022-8-19 15:22:12',interval '10-4' year_month); --2032-12-19 15:22:12

select date_add('2022-8-19 15:22:12',interval '2 2:12' day_minute); --2022-08-21 17:34:12

select date_sub('2022-8-19',interval 6 day); --2022-08-13

select subdate('2022-8-19 15:22:12',interval '6-14' day_hour); --2022-08-13 01:22:12

操作篇:

1、

相关推荐

前端入门——css 网格轨道详细介绍

上篇前端入门——cssGrid网格基础知识整体大概介绍了cssgrid的基本概念及使用方法,本文将介绍创建网格容器时会发生什么?以及在网格容器上使用行、列属性如何定位元素。在本文中,将介绍:...

Islands Architecture(孤岛架构)在携程新版首页的实践

一、项目背景2022,携程PC版首页终于迎来了首次改版,完成了用户体验与技术栈的全面升级。作为与用户连接的重要入口,旧版PC首页已经陪伴携程走过了22年,承担着重要使命的同时,也遇到了很多问题:维护/...

HTML中script标签中的那些属性

HTML中的<script>标签详解在HTML中,<script>标签用于包含或引用JavaScript代码,是前端开发中不可或缺的一部分。通过合理使用<scrip...

CSS 中各种居中你真的玩明白了么

页面布局中最常见的需求就是元素或者文字居中了,但是根据场景的不同,居中也有简单到复杂各种不同的实现方式,本篇就带大家一起了解下,各种场景下,该如何使用CSS实现居中前言页面布局中最常见的需求就是元...

CSS样式更改——列表、表格和轮廓

上篇文章主要介绍了CSS样式更改篇中的字体设置Font&边框Border设置,这篇文章分享列表、表格和轮廓,一起来看看吧。1.列表List1).列表的类型<ulstyle='list-...

一文吃透 CSS Flex 布局

原文链接:一文吃透CSSFlex布局教学游戏这里有两个小游戏,可用来练习flex布局。塔防游戏送小青蛙回家Flexbox概述Flexbox布局也叫Flex布局,弹性盒子布局。它决定了...

css实现多行文本的展开收起

背景在我们写需求时可能会遇到类似于这样的多行文本展开与收起的场景:那么,如何通过纯css实现这样的效果呢?实现的难点(1)位于多行文本右下角的展开收起按钮。(2)展开和收起两种状态的切换。(3)文本...

css 垂直居中的几种实现方式

前言设计是带有主观色彩的,同样网页设计中的css一样让人摸不头脑。网上列举的实现方式一大把,或许在这里你都看到过,但既然来到这里我希望这篇能让你看有所收获,毕竟这也是前端面试的基础。实现方式备注:...

WordPress固定链接设置

WordPress设置里的最后一项就是固定链接设置,固定链接设置是决定WordPress文章及静态页面URL的重要步骤,从站点的SEO角度来讲也是。固定链接设置决定网站URL,当页面数少的时候,可以一...

面试发愁!吃透 20 道 CSS 核心题,大厂 Offer 轻松拿

前端小伙伴们,是不是一想到面试里的CSS布局题就发愁?写代码时布局总是对不齐,面试官追问兼容性就卡壳,想跳槽却总被“多列等高”“响应式布局”这些问题难住——别担心!从今天起,咱们每天拆解一...

3种CSS清除浮动的方法

今天这篇文章给大家介绍3种CSS清除浮动的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。首先,这里就不讲为什么我们要清楚浮动,反正不清除浮动事多多。下面我就讲3种常用清除浮动的...

2025 年 CSS 终于要支持强大的自定义函数了?

大家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发!1.什么是CSS自定义属性CSS自...

css3属性(transform)的一个css3动画小应用

闲言碎语不多讲,咱们说说css3的transform属性:先上效果:效果说明:当鼠标移到a标签的时候,从右上角滑出二维码。实现方法:HTML代码如下:需要说明的一点是,a链接的跳转需要用javasc...

CSS基础知识(七)CSS背景

一、CSS背景属性1.背景颜色(background-color)属性值:transparent(透明的)或color(颜色)2.背景图片(background-image)属性值:none(没有)...

CSS 水平居中方式二

<divid="parent"><!--定义子级元素--><divid="child">居中布局</div>...

取消回复欢迎 发表评论: