首页
学习
活动
专区
圈层
工具
发布

MySQL 中 datetime 和 timestamp 的区别与选择

MySQL 中常用的两种时间储存类型分别是datetime和 timestamp。如何在它们之间选择是建表时必要的考虑。下面就谈谈他们的区别和怎么选择。...datetime 还需要函数进行转换,但是 timestamp 直接相减就行。...对于datetime来说,存什么拿到的就是什么。 还有一个区别就是如果存进去的是NULL,timestamp会自动储存当前时间,而 datetime会储存 NULL。 2 测试 我们新建一个表 ?...查看数据,可以看到存进去的是NULL,timestamp会自动储存当前时间,而 datetime会储存NULL 把时区修改为东 9 区,再查看数据,会会发现 timestamp 比 datetime 多一小时...3 选择 如果在时间上要超过Linux时间的,或者服务器时区不一样的就建议选择 datetime。

24.8K31
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySQL中DATETIME与TIMESTAMP

    “温故而知新” 真理永远都不过时,今天由于工作的事情涉及到了这里,印象中只记得DATETIME类型占用8字节,TIMESTAMP类型占用4字节,心想这么久没有更新的知识万一过时了咋办,毕竟MySQL8都有了...官网这么大,怎么搜,想起来目前在用的是MySQL 5.7版本,那就先查查5.7版本的文档吧。 废话不多说,先把结果拿出来。 v5.6.4版本之前DATETIME占用8字节。...(在v5.5.x中是没有小数部分的) 好~下面详细介绍一下 按官网给出的表格大概是这样的 Data Types Before 5.6.4 As of 5.6.4 DATETIME 8 bytes 5 bytes...余数总是小于除数,月份最大12,所以选择13作为除数,这就是为什么是用13乘以年加上月份,得到存储值。...PS:右上角可以选择文档版本,查看不同版本的MySQL的区别。

    3.4K50

    MySQL中DATETIME与TIMESTAMP

    微信关注 [可回收BUG] ---- “温故而知新” 真理永远都不过时,今天由于工作的事情涉及到了这里,印象中只记得DATETIME类型占用8字节,TIMESTAMP类型占用4字节,心想这么久没有更新的知识万一过时了咋办...,毕竟MySQL8都有了,于是翻开了MySQL的官网,决定查一查这两个字段的区别。...(在v5.5.x中是没有小数部分的) 好~下面详细介绍一下 按官网给出的表格大概是这样的 Data Types Before 5.6.4 As of 5.6.4 DATETIME 8 bytes 5 bytes...余数总是小于除数,月份最大12,所以选择13作为除数,这就是为什么是用13乘以年加上月份,得到存储值。...PS:右上角可以选择文档版本,查看不同版本的MySQL的区别。 再见~

    3K20

    Python中的Time和DateTime

    Python在处理与时间相关的操作时有两个重要模块:time和datetime。在本文中,我们介绍这两个模块并为每个场景提供带有代码和输出的说明性示例。...datetime模块是Python中处理日期和时间的主要模块,它提供了日期和时间的表示和操作的类。主要包括: datetime类:表示一个具体的日期和时间,包括年、月、日、时、分、秒和微秒。...datetime模块还提供了timedelta类,用于表示时间间隔。它可以用于在日期和时间之间进行加减运算,计算时间差等操作。...总结 Python中的time和datetime模块都提供了处理时间相关操作的基本功能。...我们要处理时间时可以根据不同的需求结合time和datetime模块,有效地处理Python程序中与时间相关的任务,从简单的时间测量到复杂的日期和时间操作。

    2.5K40

    【Mysql】MySQL中 TIMESTAMP类型 和 DATETIME类型 的区别

    查询时,将其又转化为客户端当前时区进行返回。...current_timestamp 来设置默认自动当前时间 4、timestamp支持on update current_timestamp 来设置更新时自动当前时间 5、timestamp时区相关,存储时以UTC时间保持,查询时转换为当前时区...,即如果在东8区的08:00:00分保存的数据,在东9区看到的是09:00:00,datetime与时区无关 6、timestamp 4个字节存储(实际上就是int),datetime 8个字节 7、如果...timestamp的值超出范围,mysql不会报错 8、如果是自动更新模式,手动修改数据导致timestamp字段更新 9、同时有两个timestamp字段默认值为current_timestamp会报错...参考资料: MySQL中 TIMESTAMP类型 和 DATETIME类型 的区别 http://www.studyofnet.com/news/1123.html

    7.8K20

    Python Python中的时间包1 datetime

    Python中的时间包 detetime 日期与时间的结合体 -date and time 获取当前时间 获取时间间隔 将时间对象转换成时间字符串 将字符串转成时间类型 detetime包的常用功能 获取当前时间...包中的常用方法 时间对象转字符串 获取对象时间 from datetime import datetime now = datetime.datetime.now() 时间转字符串 date_str =..., format) 参数介绍 tt: 符合时间格式的字符串 format: tt时间字符串匹配规则 python的常用时间格式化符号1 字符 介绍 %Y 完整的年份,如2021 %m 月份,1~12...%d 月中的某一天(1~31) %H 一天中的第几个小时(24小时,00~23) %I 一天中的第几个小时(12小时,00~12) %M 当前的第几分(00~59) %S 当前的第几秒(0~61)闰年多占...B 完整的月份,如二月 Fabruary %c 本地的日期和时间,如Web Fab 5 10:14:49 2020 %p 显示上午还是下午,如AM代表上午,PM代表下午 %j 一年中的第几天 %U 一年中的星期数

    1.8K30

    Python中字符串和datetime

    遇到的问题: 今天在写一个爬虫时,需要将今天的数据和昨天、一周前的数据做比较。所以就需要一个方法可以方便的计算出指定日期的前几天的日期。比如10月3号,则一周前的日期是9月26号。...问题解决: 因为数据表中日期是以“20180923”这种格式的字符串形式保存的,所以需要将字符串转换为datetime格式。然后调用datetime的方法实现获取几天前的日期。...import datetime td = datetime.datetime.strptime(td_date, '%Y%m%d').date() #昨天的日期 y = datetime.timedelta...(days=-1) yd = td + y #上周的日期 l = datetime.timedelta(days=-7) ld = td + l #日期转字符串 str_td = datetime.datetime.strftime...(td, "%Y%m%d") str_yd = datetime.datetime.strftime(yd, "%Y%m%d") str_ld = datetime.datetime.strftime(

    1.3K20

    python3中datetime库详解

    1介绍datetime库之前 我们先比较下time库和datetime库的区别 先说下time 在 Python 文档里,time是归类在Generic Operating System Services...中,换句话说, 它提供的功能是更加接近于操作系统层面的。...需要注意的是在该模块中的大多数函数是调用了所在平台C library的同名函数, 所以要特别注意有些函数是平台相关的,可能会在不同的平台有不同的效果。...():返回给定日期的星期(0-6)星期一=0,星期日=6 这里表明下python3中是从[1-7]表示的 就是本来是星期几现在显示就是星期几 6.datetime.date.replace(year,month...python中时间日期格式化符号: %y 两位数的年份表示(00-99) %Y 四位数的年份表示(000-9999) %m 月份(01-12) %d 月内中的一天(0-31) %H 24小时制小时数(

    3.2K10

    MYSQL 8 VS MYSQL 5.7 在复杂查询中 到底好了多少

    MySQL 8 最终是要大面积替换MYSQL5.7 , 之前的文字可能给人感觉MYSQL 8 还不如 MYSQL 5.7 ,实际上不然,任何东西新的一定有问题,解决解决就好了,在复杂查询这块 MYSQL...下面是MYSQL 8 和 MYSQL 5.7 在一个稍微复杂查询的执行计划 对比上面的图,一样的语句,一样的数据库,一样的表,一样的数据行数和内容,mysql 8 由于各种优化,去掉了 using firesort...当然也有一些差强人意的,下面的两个查询时间上基本相同,可能需要更多的将语句重新格式的时间,mysql 8 还慢了0.2秒 MYSQL 8 总体来说mysql 在hash join , 免filesort...的新功能对大部分查询语句是有帮助的,但实际上在测试中有些简单的语句,MYSQL 8 并不能占据什么便宜,或者说还可能会比MYSQL 5.7 慢了“一眨眼” 的功夫。...最后总结一下, 如果当前MYSQL 5.X 中运行的系统逻辑并不复杂,执行的语句都是简单的,那换了MYSQL 8 可能并不能得到什么好处,甚至会“挨骂”。

    3.4K30

    python数据可视化_python中datetime用法

    xiao.77 如何通过Python写入date数据了? 写入还是很简单的。...注意一下: python的date 和excel的date是不一样的。...可以使用输入输出流 近期很多博友找我咨询问题,我将更新的代码写在最后,由于精力有限只更新单线程版 首先声明,本博文为我原创,但是我在看了 崔庆才 博主 在本次学习中主要爬取的内容如下就简单粗暴直接献上代码吧...import requests import time import json from bs4 import BeautifulS 我们经常会面临要从数据库里判断时间,取出特定日期的查询。...幸而MYSQL 节能行业中科宇杰在留学生招聘会上成了“香饽饽”记者从2019留学归国人员专场招聘会现场了,看见排起长龙关注国内知名节 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。

    63120

    mysql数据库时间类型datetime、bigint、timestamp的查询效率比较

    作者 | 哒波甜 来源 | https://juejin.cn/post/6844903701094596615 数据库中可以用datetime、bigint、timestamp来表示时间,那么选择什么类型来存储时间比较合适呢...sql查询速率测试 通过datetime类型查询: select count(*) from users where time_date >="2018-10-21 23:32:44" and time_date...<="2018-10-21 23:41:22" 耗时:0.171 通过timestamp类型查询 select count(*) from users where time_timestamp >=...,通过时间范围查找,性能bigint > datetime > timestamp sql分组速率测试 使用bigint 进行分组会每条数据进行一个分组,如果将bigint做一个转化在去分组就没有比较的意义了...,性能timestamp > datetime,但是相差不大 sql排序速率测试 通过datetime类型排序: select * from users order by time_date 耗时:1.038s

    3.7K30

    MySQL Hints:控制查询优化器的选择

    一、什么是MySQL Hints MySQL Hints是一组特殊的注释或指令,可以直接嵌入到SQL查询中,以改变MySQL优化器的默认行为。...二、为什么需要使用Hints 性能调优:在某些复杂的查询场景下,优化器可能无法自动选择最优的执行计划。通过Hints,我们可以手动指定一些执行策略,从而提升查询性能。...在MySQL中,你通常不需要使用特殊的注释语法来提供FORCE INDEX hint。...在MySQL中,你不需要使用/*+ … */注释语法来提供这个hint,而是可以直接在查询中指定。...这些Hints为开发者提供了一种机制,以便在必要时能够更精细地控制查询的执行计划,尤其是在优化器自动选择的计划不是最优的情况下。

    2.5K10

    MYSQL 中的查询技巧 与 MYSQL 8 并行查询

    最近公司的系统一点点的开始了拆分,从ORACLE 转移到 MYSQL 中,部分程序员的想法在使用MYSQL中还是没有转变过来,直接将ORALCE中的查询语句直接搬到了MYSQL。...使用MYSQL 重要的两点,1 逻辑上移,数据库不在是承担你逻辑的第一选择,程序的比重将变得更重要 2 数据库容器化,数据库将变得不再那么重要,而是仅仅是承载数据的地方,或者甚至高级的设计,数据库将变得可有可无...下面我们可以看看MYSQL 中的index merge 的功能到底能提升查询性能多少 1 我们先关闭index_merge 很明显,索引都白搭了 2 我们打开index_merge 明显看到,查询中使用...3 时间范围对选择索引的影响 下面两条语句对于索引的选择会截然不同,我们建立四个索引 Select * from employees where first_name ='Georgi' or last_name...(*) 这样经常被诟病的查询方式也在并行度中获益。

    10K60
    领券