MySQL获取时间、格式转换各类操作方法详解


本篇文章给大家带来了关于视频教程的相关知识,其中主要介绍了关于mysql获取时间、格式转换各类操作方法的相关内容, 下面一起来看一下,希望对大家有帮助。

MySQL获取时间、格式转换各类操作方法详解

推荐学习:mysql视频教程

一、SQL时间存储类型

首先要玩好处理时间的操作,要先明白此数据类型能够干什么事,有什么用。MySQL中经常用来存储日期的数据类型有三种:Date、Datetime、Timestamp。

1.date

日历日期,例如:‘2025-6-17’.format形式为:%Y-%m-%d。在其他语言中,像Python、J*A等利用函数输出Date都为yyyy-mm-dd的形式,业务精确到天就用这个格式。

2.datetime

具体时间日期 例如:'2025-6-17 17:00:22' format格式为:%Y-%m-%d %H:%M:%s.当业务需求中需要精确到秒时,可以用这个时间格式。

3.time

具体时间不包括日期,例如:'17:11:00' format格式为:%H:%M:%s。当业务需求中只需要每天的时间,可以用这个时间格式。

4.timestamp

 和datetime存储类型一样,也是既存储时间又存储日期。format格式为:%Y-%m-%d %H:%M:%s.

PS.datetime与timestamp的区别

  • 存储方式不同,对于TIMESTAMP,它把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储。查询时,将其又转化为客户端当前时区进行返回。而对于DATETIME,不做任何改变,基本上是原样输入和输出.

  • 存储的时间范围也不一样timestamp所能存储的时间范围为:’1970-01-01 00:00:01.000000’ 到 ‘2038-01-19 03:14:07.999999’。 datetime所能存储的时间范围为:’1000-01-01 00:00:00.000000’ 到 ‘9999-12-31 23:59:59.999999’。

  • timestamp有一个机制是自动初始化与更新,意思就是如果插入数据的时候没有对该值进行赋值,则自动写入当前的[时间戳]对应的格式。在更新其他字段的时候该自动会自动更新到当前的时间

对比总结

  • timestamp和datetime除了存储范围和存储方式不一样,没有太大区别。如果对于跨时区的业务,TIMESTAMP更为合适

  • timestamp有自动初始化和更新,当你update某条记录的时候,该列值会自动更新,这是和datatime最大的区别

5.varchar/bigint

有时候存储入库格式不是固定的,可能出现入库时间精确到日或者是小时又可能只有月,这种灵活不固定的时间就只能使用字符串或者是BIGINT这种类型格式来进行。

 这种就需要提取出来后期处理,转换为时间格式进行计算或者进行逻辑运算得到自己想要的时间。

二、获取时间

1.now()

获取当地具体日期和时间:

select now() as time

 2.localtime()

获取当地具体日期和时间,与now()一样:

select LOCALTIME() as time

 3.current_timestamp()

获取当地具体日期和时间,与now()一样:

select current_timestamp() as time

4.localtimestamp()

获取当地具体日期和时间,与now()一样:

select LOCALTIMESTAMP() as time

以上这4种函数功能都与now()功能一样获取当地具体日期和时间,平常使用一个now()就好了好记。

5.sysdate()

获取当地具体日期和时间,与now()上述几个函数不一样的是,now()在执行该函数之前就已得到了。

select sysdate() as time

以上函数均为获取具体日期和时间。


 6.curdate()

获取当地具体日期:

select curdate() as time

7.current_time()

获取当地具体日期,和curdate()函数功能一样:

select current_date() as time

 以上函数均为获取具体日期。


8. curtime()

获取具体的时间:

select curtime() as time

9.current_time()

获取具体的时间:

select current_time() as

 以上均为获得具体时间的函数。


10. utc_date()

获取UTC时间的日期,因为我们是东八时区要快8个小时,本地时间=UTC时间+8小时。

select utc_date() as time

由于博主现在是晚上九点所以还是6月17日,如果是早上八点之前就是6月16号了。

11.utc_time

获取UTC时间的时间。

select utc_time() as time

12.utc_timestamp()

获取UTC时间的具体日期和时间,在做跨国业务时非常有用。

select utc_timestamp() as time

一览妙笔 一览妙笔

自媒体、编剧、营销人员写作工具

一览妙笔 50 查看详情 一览妙笔

 以上为获取UTC时间函数。


 13.HOUR(SYSDATE())

获取系统具体小时:

select HOUR(SYSDATE()) as time

 14.MINUTE(SYSDATE())

获取当前系统分钟:

select MINUTE(SYSDATE()) as time

 其他获取year,month,day,second,microsecond都可以通过这种方法获得,这里不再演示。

三、转换时间

如果是用BIGINT或者是字符串varchar存储的时间数据就需要将该列数据转换为时间数据,或者输入一个字符串想要转化为时间格式都需要转换函数,这里详细介绍各种方法解决这种问题:

1.cast() 

基础语法格式:

cast( <数据> as <数据类型> )

可转换的类型有字符串varchar、日期date、时间time、日期时间datetime、浮点型decimal、整数signed、无符号整数unsigned。 

例如我们拿到展示的sql表格:

 该列类型为BIGINT:

 下面直接用cast转换为时间类型:

select cast(time as date) as timefrom value_test

 可见如果有与其他format不对应,只记录到月或者记录到小时时,将不能识别转为时间类型。也可以切换成time或是datetime:

select cast(time as datetime) as timefrom value_test

select cast(time as time) as timefrom value_test

只要是有6个字符的都会被识别为%H:%M:s。

我们可以修改表再看:

 2.convert()

基础语法格式:

convert(<数据>,<数据类型>)
select CONVERT(time ,date) as timefrom value_test

 和上述cast的功能一样,但是cast是强制转换。

所以说如果涉及到记录有多个不同维度的时间数据存储的时候,一般是不用数据库时间类型去做存储的。看cast的例子就可以看出。

3.str_to_date()

str_to_date()函数可以将时间格式的字符串按照所指定的显示格式(format)转换为不同的时间类型。

基础语法格式:

str_to_date(<字符串>,<format格式>')
select str_to_date(time,'%Y%m%d') as timefrom value_test

 这个函数自由性要比cast和convert的自由性高很多,可以自由定义format,但是不会仅显示单个年或日,后面会根据字符的长度补零填充:

select str_to_date(time,'%Y') as timefrom value_test

 这里我们可以更改表格的时间观察是否不满足或者超过标准的时间格式能够被识别:

select str_to_date(time,'%Y%m%d') as timefrom value_test

select str_to_date(time,'%Y%m%d%H%i%S') as timefrom value_test

 可见兼容能力是很强的。

如果是时间都是统一格式记录的直接使用cast或者convert快速转换为时间格式就好了,若是记录的有多个维度的时间应该使用str_to_date函数来转换。

四、时间转换

时间转换一般是把时间类似数据转换为其他类型数据,以上例子cast()函数和convert()函数都可以做到。改变一下位置就好了,由于上述已经提到这里就做两个简单的例子展示:

1.cast()

select cast(create_time as signed) as timefrom value_test

2.convert()

select convert(create_time ,signed) as timefrom value_test

 3.date_format()

其实最主要的还是使用data_format(),date_format()函数可以以不同的格式显示日期/时间数据,可以实现日期转换成字符串。也就是将时间数据读取之后按照format形式转换为字符串输出,当然转换为了字符串我们又可以转为其他的格式。

语法格式:

date_format(<时间类型数据>,<format格式>)

其中format的格式参数可选的有:

格式 描述
%a 星期名缩写
%b 月名缩写
%c 代表几月的数值
%D 带时序后缀的数值-天
%d 天数,数值(00-31)
%e 天数,数值(0-31)
%f 微秒
%H 小时 (00-23)
%h 小时 (01-12)
%I 小时 (01-12)
-- --------------------------
%i 分钟,数值(00-59)
%j 转换为天数 (001-366)
%k 小时 (0-23)
%l 小时 (1-12)
%M 月名
%m 月,数值(00-12)
%p AM 或 PM
%r 时间,12-小时(hh:mm:ss AM 或 PM)
%S 秒(00-59)
%s 秒(00-59)%T 时间, 24-小时 (hh:mm:ss)
-- -----------------------------
%U 从年初首周开始计算 (00-53)  星期日是一周的第一天
%u 从年初首周开始计算 (00-53)  星期一是一周的第一天
%V 周 (01-53) 星期日是一周的第一天,与 %X 使用
-- ----------------------------
%v 周 (01-53) 星期一是一周的第一天,与 %x 使用
%W 星期名
%w 当前周的天数,(0=星期日, 6=星期六)
%X 年,其中的星期日是周的第一天,4 位,与 %V 使用
%x 年,其中的星期一是周的第一天,4 位,与 %v 使用
-- --------------------------
%Y 年,4 位
%y 年,2 位

自己大家可自己随意组合使用:

select date_format(create_time, '%x%v') as timefrom value_test

但是记住转换输出的都为字符串,转换为其他类型都需要再次转换.

推荐学习:mysql视频教程

以上就是MySQL获取时间、格式转换各类操作方法详解的详细内容,更多请关注其它相关文章!


# 转化为  # 推广产品用什么网站好  # 南雄seo优化网站  # 抖音关键词查排名怎么查  # 时代网站建设优惠吗  # 网站推广及优化业务策略  # 莱西短视频推广营销  # 新蔡本地推广网站团队  # 泉州网站建设案例  # 海南网站推广建设  # 小游戏营销推广  # 多个  # MySQL  # 星期日  # 格式转换  # 或者是  # 操作方法  # 均为  # 一是  # 镜像  # 转换为  # 数据分析  # 数据库 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894 】


相关推荐: 51漫画网实时入口 51漫画网页版官方免费漫画入口  VS Code如何设置默认配置  126邮箱网页在线登录2025_126邮箱网页版入口官方地址  J*a列表元素格式化输出教程  阿里云共享相册入口在哪  b站怎么设置动态仅粉丝可见_b站动态粉丝可见设置方法  CSS如何使用outline-offset与颜色组合突出元素边框  CSS布局中意外顶部空白的调试与解决:深入理解padding-top  抄漫画官网防走失地址_抄漫画最新漫画完整版阅读入口  J*aScript类型数组_TypedArray使用  Win10如何关闭操作中心通知 Win10免打扰设置全攻略【清爽】  PHP动态导航按钮:根据用户登录状态切换链接与文本  PHP中动态类名访问的类实例类型提示与静态分析实践  c++如何实现一个简单的RPC框架_c++远程过程调用原理与实践  Python中对象引用与链表属性赋值的机制解析  抖音网页版地址直接进入_抖音网页版在线观看入口  C#解析并修改XML后保存 如何确保格式与编码的正确性  sf漫画官网登录入口直达_sf漫画官方正版网址  电脑桌面图标怎么变大变小_Windows个性化设置第一课【新手入门】  宝妈做视频号该写什么标签话题?宝妈关注的话题有哪些?  5G和6G的连接密度有什么区别 6G每平方公里能连接多少设备  MacBook Pro词典使用指南  包子漫画官网链接官方地址 包子漫画在线观看官网首页入口  百度浏览器无法安装扩展程序_百度浏览器插件安装失败原因解析  视频转蓝光m2ts格式  b站网页版入口 哔哩哔哩官方网站直接进入  微信客户端如何找回密码_微信客户端忘记密码找回方法  iPhone 15 Pro如何查看存储空间占用_iPhone 15 Pro存储空间查看教程  PHP中实现JSON数据数组分页的教程  优化2xN网格最大路径和的动态规划算法实践  C++ priority_queue怎么用_C++优先队列底层实现与自定义比较器  《下一站江湖2》风神腿获取攻略  申通快递物流信息查询 申通快递包裹状态追踪  c++20的指定初始化(Designated Initializers)怎么用_c++ C风格结构体初始化  大熊猫抓取竹子的“大拇指”其实是什么?蚂蚁庄园课堂今天答案最新11月30日  路由器DNS怎么设置最快 优化DNS提升上网速度教程  响应式设计中动态背景颜色条的实现指南  PHP与SQL实践:高效实现数据复制与特定列值修改  《万兴喵影》导出视频方法  江苏大剧院会员卡购买步骤  使用AI在VS Code中将代码从一种语言翻译成另一种  b站怎么用微信登录_b站微信登录方法  iPhone 13 Pro Max如何设置桌面小组件_iPhone 13 Pro Max小组件添加指南  蛙漫2(台版)正版官网 2025免费网页版分享  汽水音乐车机版官网5.0 汽水音乐车机版5.0版本下载入口  在Spring Boot Thymeleaf中利用布尔属性实现容器的条件显示  安居客移动经纪人怎么设置自动回复?-安居客移动经纪人设置自动回复的方法  WPS文字如何进行简繁转换  掌握CSS :has() 选择器:父选择器、嵌套限制与常见陷阱解析  如何修改Windows截图的默认保存位置_告别C盘让桌面更整洁【教程】 

 2022-11-07

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.