mysql中的时间相关函数

news2024/9/22 3:32:31

MySQL服务器中有3种时区设置:

  • 系统时区(保存在system_time_zone系统变量中)
  • 服务器时区(保存在全局系统变量time_zone中)
  • 每个客户端连接的时区(保存在会话变量time_zone中)

其中,客户端时区的设置会影响一些日期时间函数返回值的显示,例如now(),curtime(),curdate(),也影响timestamp列值的显示。


datetime和timestamp都是日期和时间的混合类型,他们的区别:

  1. 表示的取值范围不同,datetime的取值范围远远大于timestamp的取值范围。
  2. 将NULL插入timestamp字段后,该字段的值实际上是MySQL服务器当前的日期和时间。
  3. 对于同一个timestamp类型的日期或者时间,不同的时区显示结果不同。使用MySQL服务器当前的日期和时间。
  4. 当对包含timestamp的数据的记录进行修改时,timestamp 数据将自动更新为MySQL 服务器当前的日期和时间。

mysql date数据类型的输入

日期
年月日
901101
19901101(推荐)
image.png

将字符串转为日期(年月日)

使用str_to_date 函数可以将字符串转为指定格式的日期形式输出。
image.png
image.png


mysql time数据类型的输入

时间的表示方法:
image.png
秒小数点后面可以接三位:
image.png
小数点后面三位之后的四舍五入:
image.png
在使用 str_to_date之前最好设置参数:
image.png
使用str_to_date:
image.png
datetime:
image.png
datetime str_to_date:
image.png


date和time的显示方式

对时间的定制:date_format
在mysql中,DATE_FORMAT(date, format) 函数根据format字符串格式化date值。

%W 	星期名字(Sunday……Saturday) 
%D 	有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。) 
%Y 	年, 数字, 4%y 	年, 数字, 2%a 	缩写的星期名字(Sun……Sat) 
%d 	月份中的天数, 数字(00……31) 
%e 	月份中的天数, 数字(0……31) 
%m 	月, 数字(01……12) 
%c 	月, 数字(1……12) 
%b 	缩写的月份名字(Jan……Dec) 
%j 	一年中的天数(001……366) 
%H 	小时(00……23) 
%k 	小时(0……23) 
%h 	小时(01……12) 
%I 	小时(01……12) 
%l 	小时(1……12) 
%i 	分钟, 数字(00……59) 
%r 	时间,12 小时(hh:mm:ss [AP]M) 
%T 	时间,24 小时(hh:mm:ss) 
%S 	秒(00……59) 
%s 	秒(00……59) 
%p 	AM或PM 
%w 	一个星期中的天数(0=Sunday ……6=Saturday ) 
%U 	星期(0……52), 这里星期天是星期的第一天 
%u 	星期(0……52), 这里星期一是星期的第一天 
%% 	一个文字“%”。 

os时区

操作系统的时区:
cat /etc/sysconfig/clock
cat /usr/share/zoneinfo/Asia/Shanghai
系统时区
show variable like 'system%';
全局时区 ——默认等于系统时区
select @@global.time_zone;
会话时区
select @@session.time_zone;
设置时区
set @@global.time_zone='+8:00';

cat /etc/sysconfig/clock
image.png
cat /usr/share/zoneinfo/Asia/Shanghai
image.png
CST-8 东8区


mysql时区

mysql里的系统时区:
image.png
mysql里的系统时区 和 linux里的时区对我们的生产几乎没有影响,我们可以不用去理会它。
我们需要关注的是全局时区
image.png
设置时区
image.png
加载时区
mysql_tzinfo_to_sql 程序导入时区信息到mysql数据库中。

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -uroot -pxxxxxxx mysql
select * from mysql.time_zone_name;
set time_zone='Asia/Shanghai'

先执行一个脚本,然后再查看数据库里的内容,最后再设置时区。
set time_zone='Asia/Shanghai'; 这种方式设置的时区重启之后会消失。
image.png


如果想永久生效,需要修改配置文件 /etc/my.cnf,并重启数据库。

image.png
image.png


mysql时区正确的使用规则

mysql时区的使用

一个会话登上来,默认时区等于global_time_zone
我们要往表里的一个列存一个日期进去,往里面存的时候,这时候mysql会做一个事情,就是mysql发现你要往timestamp里面存时间,他会把会话要存的时间和会话所对应的时区合起来,换算出来你这个时间 所对应的零时区是多少,然后把时间存到列里面去
我们要取数据的时候,mysql会换算出相应的时区给你

mysql什么时候用到时区?

mysql里的表中有一个列叫timestamp的时候
session.time_zone默认情况下等于global.time_zone

查看会话时区和全局时区:

image.png
修改会话时区:
image.png


mysql时区正确时间

我们在一个会话里设置时区为东八区,我们在t16表里插入数据。
image.png

在另一个会话里设置时区为东十区,当我们查看t16表里的数据的时候,我们会发现东十区的会话的时间比东八区晚两个小时。
image.png


tiemstamp列
mysql 存时区的时候,都是转换成0时区存进系统,当取出来的时候,再转换成原来的时区取出来。
使用timestamp列时,一定要正确设置时区

获取mysql服务器当前日期或时间函数:

  • curdate()、current_date() :函数用于获取 mysql 服务器当前日期;
  • curtime()、current_time() : 函数用于获取mysql服务里当前的时间;
  • now()、current_timestamp()、localtime() 函数以及sysdate() : 函数用于获取mysql服务器当前的日期和时间

now()、current_timestamp()、 localtime()函数以及sysdate() 函数 与时区的设置有关,根据时区设置的变化而变化。
image.png

获取mysql服务器当前Unix时间戳函数:

unix_timestamp() 函数用于获取mysql服务器当前Unix系统的时间戳,Unix的时间戳是从1970 年1月1日开始所经过的秒数。
Unix_timestamp(datetime) 函数将日期时间datetime以Unix时间戳格式返回,而 from_unixtime(timestamp) 函数可以将Unix时间戳以日期时间格式返回。这几个函数中,只有from_unixtime()函数的返回值与时区设置无关。
image.png

获取mysql服务器当前utc日期和时间函数:

utc_date() 用于获取utc日期,utc_time() 函数用来获取utc时间。utc时间就是世界标准时间。这些函数的返回值与时区的设置无关。
GMT:世界标准时间,格林尼治标准时间也叫格林威治标准时间,是指位于伦敦郊区的皇家格林尼治天文台的标准时间。
utc时间就是协调世界时,由原子钟提供,在时刻上尽量接近于世界时的一种时间计量系统。
这些函数的返回值与时区的设置无关。
EDT(Eastern Daylight Timing)指美国东部夏令时间。东部时区慢北京时间12小时。
EST eastern standard time (美国)东部标准时间 慢北京时间 13个小时。
image.png

获取日期或时间的某一具体信息的函数

(1)获取年、月、日、时、分、秒、微秒的信息
year(x)、month(x)、dayofmonth(x)、hour(x)、minute(x)、second(x)、microsecond(x) 函数。
extract(type from x) 函数用法与上类似。
image.png
(2)获取月份、星期等信息的函数:
monthname(x) 函数 获取日期时间(x) 的月份信息。daytime(x)函数与weekday(x) 函数用于获取日期时间x的星期信息,dayofweek(x) 函数用于获取日期时间 x 是本星期的第几天;
image.png
(3)获取年度信息的函数
quarter(x) 函数用于获取日期时间在本年是第几季度,week(x) 函数与weekofyear(x) 函数用于获取日期时间x在本年是第几个星期;dayofyear(x) 用于获取x在本年是第几天。
image.png

时间和秒数之间的转换

time_to_sec(x) 函数用于获取时间x在当天的秒数;sec_to_time(x) 用于获取当天的秒数对应的时间。
image.png

日期间隔、时间间隔函数

(1)日期时间间隔函数
to_days(x)用于计算日期x距离0000年1月1日的天数;from_days(X)函数用于计算从0000年1月1日开始n天后的日期,datediff(x1,x2) 用于计算日期x1和x2之间的相隔天数;adddate(d,n) 返回起始日期d加上n天后的日期;subdate(d,n) 返回起始日期d减去n天的日期。
image.png
(2)时间间隔函数
addtime(t,n) 函数返回起始时间t加上n秒的时间,subtime(t,n) 函数返回起始时间t减去n秒的时间。
image.png
(3)计算指定日期时间指定间隔的日期函数。
date_add(date,interval间隔 间隔类型)函数返回指定日期date指定间隔的日期
image.png

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

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

相关文章

极米RS10Plus性价比高吗?7款4-6K价位投影仪测评哪款最好

通常家庭想买个投影仪都会选择4-6K这个价位段的投影仪,3K以下的投影配置太低,6K以上的价格略高,4-6K价位段的中高端投影仪正好满足大部分家庭的使用需求。正好极米投影在8月份上新了一款Plus版本的长焦投影:极米RS10Plus&#xff…

剪切走的照片找回:数据恢复实战指南

一、引言:当珍贵瞬间遭遇剪切失误 在数字化时代,照片不仅是记忆的载体,更是情感与故事的传承。然而,一次不经意的剪切操作失误,却可能让这些珍贵的瞬间面临丢失的风险。面对剪切走的照片,许多用户会感到无…

AI看奥运 | 从巴黎奥运会看人工智能的应用和发展

2024巴黎奥运会火热空前,从开幕式到金牌争夺战,本届奥运会的关注热度持续攀升。与往届不同的是,本届奥运会不仅是首次在体育场馆外举办的户外开幕式的奥运会,同时也是在转播技术上首次广泛应用AI技术的奥运会,包括“时…

C++ 新特性 | C++20 常用新特性介绍

目录 1、模块(Modules) 2、协程(Coroutines) 3、概念(Concepts) 4、范围(Ranges) 5、三向比较符(three-way comparison) C软件异常排查从入门到精通系列教程(专栏文章列表,欢迎订阅,持续更新...)https…

哈尔滨等保测评——为工业网络安全保驾护航新航标

哈尔滨,这个以冰雪和美丽闻名世界的城市,现在又树立了一个全新的行业标准,那就是“等保”,正在掀起一场新的安全革命,保卫着这个智能时代! ❄️【哈尔滨新视野】❄️ 哈尔滨是一块充满创新活力的土地&…

数据结构之Map和Set(下)

找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏:数据结构(Java版) 上一篇文章,我们学习了:二叉搜索树、Map和Set的介绍以及常见方法的基本使用…

充电宝啥牌子质量好性价比高?探寻性价比高充电宝!

这个移动设备无处不在的时代,充电宝已经成为我们生活中不可或缺的配件。然而,面对市场上琳琅满目的充电宝品牌和型号,许多人在选择时往往感到困惑。如何找到一款质量好、性价比高的充电宝,成为了众多消费者关注的焦点。本文将带您…

SpringMVC (发送请求——>参数传递—— >响应数据)

设置请求访问路径 RequestMapper:将请求访问路径和我们业务层的方法联系起来 ResponseBody:将我们业务层方法的返回值转化为json,xml或其他格式的数据返回给页面 两种请求 get请求 post请求 测试案例 RequestMapping("/getNameAndAge&…

Linux逻辑卷管理LVM

系列文章目录 提示:仅用于个人学习,进行查漏补缺使用。 1.Linux介绍、目录结构、文件基本属性、Shell 2.Linux常用命令 3.Linux文件管理 4.Linux 命令安装(rpm、install) 5.Linux账号管理 6.Linux文件/目录权限管理 7.Linux磁盘管理/文件系统 提示&a…

应急响应:Windows 入侵排查思路.

什么是应急响应. 一个组织为了 应对 各种网络安全意外事件的发生 所做的准备 以及在 事件发生后 所采取的措施 。说白了就是别人攻击你了,你怎么把这个攻击还原,看看别人是怎么攻击的,然后你如何去处理,这就是应急响应。 目录&am…

数字货币市场历史数据获取API(含源代码)

加密数字货币市场历史数据获取API(含源代码) 数字货币市场历史数据获取API(含源代码)1. Binance API运行结果BTCUSDT.csv 文件截图 2. CoinGecko API3. CryptoCompare API总结 数字货币市场历史数据获取API(含源代码&a…

【机器学习算法基础】(基础机器学习课程)-11-k-means-笔记

示例案例 为了更好地理解 K-Means 算法,下面通过一个简单的案例进行说明。 假设我们有以下 10 个二维数据点,表示不同商店的销售额(单位:千元)和顾客数(单位:人): [(1…

zabbix的自动发现和注册、proxy代理和SNMP监控

一、zabbix自动发现和注册 1.概念 zabbix客户端主动的和服务端联系,将自己的地址和端口发送给服务端,实现自动添加监控主机。 客户端是主动的一方 缺点:自定义网段中主机数量太多,登记耗时会很久,而且这个自动发现…

多参数MRI靶向活检与系统性活检在筛查筛状和导管内癌前列腺癌中的比较| 文献速递-基于深度学习的乳房、前列腺疾病诊断系统

Title 题目 Comparison of Multiparametric MRI–targeted and Systematic Biopsies for Detection of Cribriform and Intraductal Carcinoma Prostate Cancer 多参数MRI靶向活检与系统性活检在筛查筛状和导管内癌前列腺癌中的比较 Background 背景 Intraductal carcin…

婴儿浴缸及沐浴辅助用品 亚马逊澳大利亚站认证

本政策涵盖的婴儿浴缸及沐浴辅助用品 婴儿沐浴辅助用品用于为婴儿提供支撑,以便成人可以腾出手来为婴儿沐浴。商品设计多种多样,可能随婴儿浴缸一起提供,也可能塑造成婴儿浴缸的形状,也可能设计为淋浴时使用的椅子。婴儿沐浴辅助…

制造知识普及(十)-- 常见的工业软件介绍

「 1. ERP」 企业资源计划(enterprise resource planning,ERP)是制造企业的核心管理软件。ERP系统的基本思想是以销定产,协同管控企业的产、供、销、人、财、物等资源,帮助企业按照销售订单,基于产品的制造…

十一、vector 类

Ⅰ . vector 的介绍和使用 01 vector 的介绍 vector 的文档介绍:vector ① vector 是表示可变大小数组的序列容器,既像数组,又不像数组 像体现在:同样采用连续存储空间存储元素,可以使用下标访问元素 不像体现在&…

ffmpeg -- 常用口令

文章目录 1.视频格式转换2.设置比特率3.设置帧率4.强制让输入视频帧率为1,输出视频帧率为245.长视频截短6.自动分割视频的bash脚本7.每一帧都保存成图片 1.视频格式转换 ffmpeg -i input.avi output.mp42.设置比特率 ffmpeg -i input.avi -b:v 64k -bufsize 64k o…

Kuboard v3安装手册

1、Kuboard v3安装 docker pull swr.cn-east-2.myhuaweicloud.com/kuboard/kuboard:v3 #启动kuboard容器 docker run -d \ --restartunless-stopped \ --namekuboard \ -p 8003:80/tcp \ -p 30081:10081/tcp \ -e KUBOARD_ENDPOINT"http://10.111.13.2:8003&q…

智能分析,安全无忧:AI视频分析技术在安全生产中的深度应用

在当今快速发展的科技时代,视频智能分析技术(Intelligent Video Analysis,简称IV)已经成为提升安全生产水平的重要手段。这一技术通过计算机图像视觉分析技术,实现了对场景中目标的自动识别和追踪,有效提升…