MySQL获取当前日期、时间、时间戳函数

news2024/11/17 11:33:48

目录

1.MySQL 获取当前日期时间 函数

1.1 获取当前日期(date)函数:curdate()

1.2 获取当前时间(time)函数:curtime()

1.3 获取当前日期+时间(date + time)函数:now()

1.4 获取当前日期+时间(date + time)函数:sysdate()

1.5 获取当前时间戳函数:current_timestamp, current_timestamp()

2.MySQL 日期/时间 转换函数

2.1 日期/时间转换为字符串函数:date_format(date,format), time_format(time,format)

2.2 字符串转换为日期 函数:str_to_date(str, format)

2.3 日期/天数转换 函数:to_days(date), from_days(days)

2.4 时间/秒转换 函数:time_to_sec(time), sec_to_time(seconds)

2.5 拼凑日期/时间 函数:makdedate(year,dayofyear), maketime(hour,minute,second)

2.6 Unix时间戳/日期 转换函数

3.MySQL日期时间计算函数

3.1 为日期增加一个时间间隔:date_add()

3.2 为日期减去一个时间间隔:date_sub()

3.3 日期、时间相减函数:datediff(date1,date2), timediff(time1,time2)

3.4 时间戳(timestamp)转换、增、减函数:

4.MySQL 时区(timezone)转换函数:convert_tz(dt,from_tz,to_tz)


1.MySQL 获取当前日期时间 函数

1.1 获取当前日期(date)函数:curdate()

1.2 获取当前时间(time)函数:curtime()

1.3 获取当前日期+时间(date + time)函数:now()

1.4 获取当前日期+时间(date + time)函数:sysdate()

sysdate() 跟 now() 类似,不同之处在于:now() 在执行开始时值就得到, sysdate() 在函数执行时动态得到值。
看下面的例子就明白了:

1.5 获取当前时间戳函数:current_timestamp, current_timestamp()


2.MySQL 日期/时间 转换函数

2.1 日期/时间转换为字符串函数:date_format(date,format), time_format(time,format)

MySQL日期、时间转换函数:date_format(date,format), time_format(time,format) 能把一个日期/时间转换成各样的字符串格式。
它是 str_to_date(str,format) 函数的 一个逆转换。

 

2.2 字符串转换为日期 函数:str_to_date(str, format)

str_to_date(str,format) 转换函数,可以把一些杂乱无章的字符串转换为日期格式。
另外,它也可以转换为时间。“format” 可以参看 MySQL 手册。

select str_to_date('05/08/2023', '%m/%d/%Y'); -- 2023-05-08
select str_to_date('05/08/2023' , '%m/%d/%y'); -- 2023-05-08
select str_to_date('05.08.2023', '%m.%d.%Y'); -- 2023-05-08
select str_to_date('12:32:24', '%h:%i:%s'); -- 00:32:24
select str_to_date('05.08.2023 12:32:24', '%m.%d.%Y %h:%i:%s'); -- 2023-05-08 12:32:24

2.3 日期/天数转换 函数:to_days(date), from_days(days)

select to_days('0000-01-01'); -- 1(日期转换为天数)
select to_days(curdate()); -- 739013(日期转换为天数)
select from_days(0); -- 0000-00-00(天数转换为日期)
select from_days(739013); -- 2023-05-08(天数转换为日期)

2.4 时间/秒转换 函数:time_to_sec(time), sec_to_time(seconds)

select time_to_sec('01:00:05'); -- 3605(时间转换为秒数)
select sec_to_time(3605); -- 01:00:05(秒数转换为时间)

2.5 拼凑日期/时间 函数:makdedate(year,dayofyear), maketime(hour,minute,second)

select makedate(2020,31); -- 2020-01-3(拼凑日期)
select makedate(2020,32); -- 2020-02-01(拼凑日期)
select maketime(12,15,30); -- 12:15:30(拼凑时间)

2.6 Unix时间戳/日期 转换函数

unix_timestamp(),
unix_timestamp(date),
from_unixtime(unix_timestamp),
from_unixtime(unix_timestamp,format)

select unix_timestamp(); -- 1683544672
select from_unixtime(1683544672); -- 2023-05-08 19:17:52

select unix_timestamp(curdate()); -- 1683475200
select from_unixtime(1683475200); -- 2023-05-08 00:00:00

select unix_timestamp(current_timestamp()); -- 1683544792
select from_unixtime(1683544792); -- 2023-05-08 19:19:52

select from_unixtime(1683544672, '%Y %D %M %h:%i:%s %x'); -- 2023 8th May 07:17:52 2023

3.MySQL日期时间计算函数

3.1 为日期增加一个时间间隔:date_add()

set @dt = now();

select @dt;
select date_add(@dt, interval 1 day); -- add 1 day
select date_add(@dt, interval 1 hour); -- add 1 hour
select date_add(@dt, interval 1 minute); -- ...
select date_add(@dt, interval 1 second);
select date_add(@dt, interval 1 microsecond);
select date_add(@dt, interval 1 week);
select date_add(@dt, interval 1 month);
select date_add(@dt, interval 1 quarter);
select date_add(@dt, interval 1 year);

select date_add(@dt, interval -1 day); -- sub 1 day

MySQL adddate(), addtime()函数,可用 date_add() 来替代。

下面是 date_add() 实现 addtime() 功能示例:

mysql> set @dt = now();

mysql> select date_add(@dt, interval '01:15:30' hour_second);
+------------------------------------------------+
| date_add(@dt, interval '01:15:30' hour_second) |
+------------------------------------------------+
| 2023-05-08 20:47:09                            |
+------------------------------------------------+

mysql> select date_add(@dt, interval '1 01:15:30' day_second);
+-------------------------------------------------+
| date_add(@dt, interval '1 01:15:30' day_second) |
+-------------------------------------------------+
| 2023-05-09 20:47:09                             |
+-------------------------------------------------+

3.2 为日期减去一个时间间隔:date_sub()

MySQL date_sub() 日期时间函数和date_add() 用法一致。

mysql> set @dt = now();

mysql> select date_sub(@dt, interval '1 1:1:1' day_second);
+----------------------------------------------------------------+
| date_sub('2020-07-24 12:02:05', interval '1 1:1:1' day_second) |
+----------------------------------------------------------------+
| 2023-05-07 18:32:28                                            |
+----------------------------------------------------------------+

3.3 日期、时间相减函数:datediff(date1,date2), timediff(time1,time2)

MySQL datediff(date1,date2):两个日期相减 date1 - date2,返回天数。

mysql> select datediff(curdate(), '2023-05-01'); -- 7
mysql> select datediff('2023-05-01', '2023-05-08'); -- -7

MySQL timediff(time1,time2):两个日期相减 time1 - time2,返回 time 差值。

mysql> select timediff(current_timestamp(), '2023-05-08 00:00:00'); -- 19:39:20
mysql> select timediff('19:39:20', '00:00:00'); -- 19:39:20

注意:timediff(time1,time2) 函数的两个参数类型必须相同。

3.4 时间戳(timestamp)转换、增、减函数:

timestamp(date) – date to timestamp
timestamp(dt,time) – dt + time
timestampadd(unit,interval,datetime_expr)
timestampdiff(unit,datetime_expr1,datetime_expr2)
 

-- 转换
select timestamp('2023-05-08'); -- 2023-05-08 00:00:00
select timestamp('2023-05-08 19:52:51', '01:01:01'); -- 2023-05-08 20:53:52
select timestamp(current_timestamp(), '10 01:01:01'); -- 2023-05-18 20:54:46

-- 增
select timestampadd(day, 1, current_timestamp()); -- 2023-05-09 19:54:26
select date_add(current_timestamp(), interval 1 day); -- 2023-05-09 19:55:06

-- 减
select timestampdiff(year,current_timestamp(),'2018-01-01'); -- -5
select timestampdiff(day ,'2023-05-08','2018-01-01'); -- -1953
select timestampdiff(hour,'2023-05-08 12:00:00','2023-05-08 00:00:00'); -- -12
select datediff('2023-05-08 12:00:00', '2023-05-01 00:00:00'); -- 7

# MySQL timestampdiff() 函数就比 datediff() 功能强多了,datediff() 只能计算两个日期(date)之间相差的天数。

4.MySQL 时区(timezone)转换函数:convert_tz(dt,from_tz,to_tz)

select convert_tz('2023-05-08 12:00:00', '+08:00', '+00:00'); -- 2023-05-08 04:00:00

# 时区转换也可以通过 date_add, date_sub, timestampadd 来实现。
select date_add('2023-05-08 12:00:00', interval -8 hour); -- 2023-05-08 04:00:00
select date_sub('2023-05-08 12:00:00', interval 8 hour); -- 2023-05-08 04:00:00
select timestampadd(hour, -8, '2023-05-08 12:00:00'); -- 2023-05-08 04:00:00

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

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

相关文章

BClinux8.6 制作openssh9.3p1 rpm升级包和升级实战

一、背景说明 BClinux8.6 默认安装的openssh 版本为8.0,经绿盟扫描,存在高危漏洞,需要升级到最新。 官网只提供编译安装包,而BClinux8.6 为rpm方式安装。 为了方便升级,先通过编译安装包,制作rpm包&…

什么是无感电阻?无感电阻和普通电阻的区别

无感电阻,也称为电感电阻、电感器、电感元件等,是一种电气元件,常用于电子电路中,用于限制电流、防止电磁干扰等。无感电阻是指一种电阻器件,它能够在高频电路中工作而不会产生电感,从而避免了电感对电路性…

【Python】更改matplotlib绘图样式,要创建一个后缀名为mplstyle的样式清单,如何实现?

要更改 matplotlib 绘图样式,可以按照以下步骤创建一个后缀名为 mplstyle 的样式清单: 打开终端或 Anaconda Prompt(Windows 用户);确保您的 Matplotlib 版本是 2.0.0 以上版本,通过运行: imp…

被裁现状,给找工作的同学一些建议

2022 到 2023 国内知名互联网公司腾讯、阿里、百度、快手、滴滴、京东、阿里、爱奇艺、知乎、字节跳动、小米等公司均有裁员,其中有不少公司,在过去年的一整年,进行了多轮裁员,以下是网传的一张 “2022 年裁员企业名单”。 这些裁…

【单目标优化算法】孔雀优化算法(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

介绍一个empty(空状态描述)全端通用的空状态描述组件

介绍 这是一个全端通用的空状态描述组件,集成了25种常用场景,支持自定义图标及内容,快点下载试试吧。 插件含全部源码,可以给您无限实现可能,随心所欲自定义你的功能;符合uni_modules和easycom规范&#…

什么是web3 | 区块链web3.0人才

文章目录 一、Web31. 什么是web3?2. web3的dapp架构 二、区块链web3.0人才1. 区块链开发技术栈2. 欧易对人才的要求3. 如何成为一名合格的智能合约高级工程师4. web3各个赛道5. 链上数据分析师6. 一些案例 三、参考 一、Web3 1. 什么是web3? 20世纪90年…

百度搜索排名的提升,就靠这10个优化技巧!

随着互联网的快速发展,网站排名已经成为了企业竞争的一个重要指标。其中,百度搜索排名的提升更是众多企业都非常关注的问题。因此,在这篇文章中,我将为大家介绍10个优化技巧,以帮助企业提升百度搜索排名。 1.关键词优化…

MG100-Hi3798MV100-当贝纯净桌面卡刷固件包

MG100-Hi3798MV100-当贝纯净桌面卡刷固件包-内有教程及短接点 特点: 1、适用于对应型号的电视盒子刷机; 2、开放原厂固件屏蔽的市场安装和u盘安装apk; 3、修改dns,三网通用; 4、大量精简内置的没用的软件&#xf…

MySQL基础篇补充 | 多表查询中使用SQL99实现7种JOIN操作、SQL99语法新特性

目录 一:多表查询中使用SQL99实现7种JOIN操作 二:SQL99语法新特性 1. 自然连接Natural 2. USING连接 一:多表查询中使用SQL99实现7种JOIN操作 在多表查询中,除了遇到最多的内连接、左外连接和右外连接,还有其它的…

GPT-4与人工智能的未来:微软CTO对话比尔·盖茨

一系列技术变革引领我们走到今天,并深刻影响着人类社会。如今,随着人工智能技术的快速发展,ChatGPT、New Bing、GPT-4 等新产品和新技术的陆续发布,又将如何帮助我们创造未来?在微软与 OpenAI 的密切合作中&#xff0c…

Packet Tracer - 使用 CLI 配置 IOS 入侵防御系统 (IPS)

Packet Tracer - 使用 CLI 配置 IOS 入侵防御系统 (IPS) 拓扑图 地址分配表 设备 接口 IP 地址 子网掩码 默认网关 交换机端口 R1 G0/1 192.168.1.1 255.255.255.0 不适用 S1 F0/1 S0/0/0 10.1.1.1 255.255.255.252 不适用 不适用 R2 S0/0/0 (DCE) 10.1.1.…

服装生产erp都有哪些功能?该如何选服装生产erp?

各位开服装工厂的老板是否遇到这些难题: 库存管理成本高,大量库存积压导致资金紧张; 车间用人成本高,工人工作效率低,浪费大量时间和资金成本; 生产、加工、成品出库等各环节无法顺畅衔接,补单困…

Wikidata 数据包下载+格式转换+入库MySQL

1. Wikidata 简介 维基数据是一个自由的协作式的多语言辅助数据库,用于收集结构化的数据,旨在支援维基百科、维基共享资源以及其他维基媒体运动中的项目,也支援世界上的每一个人。 官网:https://www.wikidata.org/wiki/Wikidata:M…

在“裸奔”时代保护我们的隐私:网络攻击、数据泄露与隐私侵犯的应对策略与工具

摘要:随着信息技术的普及和发展,个人隐私和数据安全问题日益受到威胁。本文将讨论如何有效应对网络攻击、数据泄露和隐私侵犯,并提供一系列实用的技巧和工具,以帮助我们在“裸奔”时代更好地保护数据安全和隐私。 当今社会&#…

Http知识

一、http协议 目前存在HTTP1.1(当前广泛运用的版本)、HTTP2.0和HTTP3.0协议,有以下的优点和缺点 1. HTTP1.1 优点:默认支持长连接,即在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的…

浅浅地优化下视频流播放体验

作者:唐子玄 这一篇将从如何播放视频开始,接着介绍如何封装播放器,再将视频播放和列表结合形成视频流,然后一步步地优化视频流的播放体验。 播放视频 ExoPlayer 基本使用 这次我选择的是ExoPlayer,添加依赖如下&…

13个UI设计软件,一次满足你的UI设计需求

UI设计师的角色是当今互联网时代非常重要的一部分。许多计算机和移动软件都需要UI设计师的参与,这个过程复杂而乏味。这里将与您分享13个UI设计软件,希望帮助您正确选择UI设计软件,节省工作量,创建更多优秀的UI设计作品。 1.即时…

4.共享模型之管程

4.共享模型之管程 4.1 共享带来的问题 Java的体现 import lombok.extern.slf4j.Slf4j;/*** author xc* date 2023/5/6 13:00*/ Slf4j public class Test14 {static int i 0;public static void main(String[] args) throws InterruptedException {Thread t1 new Thread(()…

Android Framework开发前景分析~

Android Framework是Android操作系统中的重要组成部分,它提供了一系列的API(应用程序接口)和服务,方便开发人员创建Android应用程序。随着Android设备的普及和移动互联网市场的快速发展,Android Framework开发有着广泛…