首页 > 其他分享 >待继续

待继续

时间:2024-04-18 19:11:39浏览次数:19  
标签:int DATETIME 日期 BIGINT 时间 类型 继续

image

1.若用int来存秒数的话,用北京时区 最大 可以存到到 什么时间?

若使用int类型来存储以秒为单位的时间戳,并且考虑北京时区,我们需要注意以下几点:

  1. int类型的范围:在MySQL中,一个有符号的int类型能够表示的秒数范围是-2,147,483,6482,147,483,647。但是,由于时间戳通常不会是负数,我们主要关注正数范围,即最大值为2,147,483,647秒。

  2. Unix时间戳的起点:Unix时间戳是从1970年1月1日 00:00:00 UTC开始计算的。北京时区是UTC+8,所以对应的北京时间是1970年1月1日 08:00:00

  3. 计算最大时间:将int类型能表示的最大秒数2,147,483,647秒加到Unix时间戳的起点上。这个时间戳对应的UTC时间是2038年1月19日 03:14:07。由于北京时区是UTC+8,因此这个时间在北京时间是2038年1月19日 11:14:07

综上所述,若使用int类型存储秒数来表示时间,并且考虑北京时区,最大可以存到的时间是2038年1月19日 11:14:07。超过这个时间点,int类型将无法准确表示,因为会超出其能表示的最大范围。如果需要存储更长时间范围内的时间戳,可以考虑使用BIGINT类型或者其他日期时间数据类型。

显然是 int是 不行了 ,最多2038年,不满足,接下来就看下 bigint和 datetime

2. mysql里的datetime 占几个字节 ?

在MySQL中,DATETIME 类型占用8个字节(64位)。这个类型用于表示日期和时间值,范围从1000-01-01 00:00:009999-12-31 23:59:59。由于其固定的字节大小和明确的范围,DATETIME 类型在处理日期和时间时提供了稳定性和一致性。

bigInt 也是8个字节;

3. MySQL里 存 日期,用 bigint和 用 datetime 对比?

在MySQL中存储日期时,选择使用BIGINTDATETIME类型有其各自的优缺点。以下是对这两种数据类型的详细对比:

BIGINT

优点:

  1. 灵活性BIGINT可以存储任何整数,这意味着你可以用它来存储从某个固定时间点(如Unix纪元1970年1月1日)开始的秒数、毫秒数或其他时间单位。这种灵活性允许你根据需要选择时间的精度。

  2. 性能:在某些情况下,整数的比较和计算可能比日期时间类型的操作更快,尤其是在进行范围查询或数学运算时。

  3. 存储空间:虽然BIGINT占用8个字节,与DATETIME相同,但如果你选择存储更精细的时间单位(如毫秒),则可以在一个字段中记录更多信息。

缺点:

  1. 可读性BIGINT存储的时间戳对人类来说不易读,需要转换为实际的日期和时间格式才能理解。

  2. 查询复杂性:进行日期范围查询或提取日期部分(如年、月、日)时,可能需要额外的计算和转换。

  3. 时区处理:如果应用需要处理多个时区,使用BIGINT可能需要额外的逻辑来转换时间戳到不同的时区。

DATETIME

优点:

  1. 可读性DATETIME以人类可读的格式('YYYY-MM-DD HH:MM:SS')存储日期和时间,这使得数据更容易被理解和解释。

  2. 易用性:MySQL为DATETIME类型提供了丰富的日期和时间函数,使得日期计算和格式化变得简单直接。

  3. 时区无关性DATETIME类型记录的是“绝对”时间,与时区无关。这意味着你不需要担心时区转换问题,除非你需要明确处理时区。

缺点:

  1. 灵活性限制:与BIGINT相比,DATETIME的精度限制在秒级。如果你需要毫秒或微秒级的精度,你可能需要使用TIMESTAMP(3)TIMESTAMP(6)等其他类型。

  2. 性能考虑:虽然在现代数据库中日期时间类型的操作已经高度优化,但在某些极端情况下,日期时间的比较和计算可能会比整数操作稍慢。

  3. 存储空间:虽然DATETIME也占用8个字节,但如果你使用BIGINT并只存储到天的精度,那么BIGINT可能会更加节省空间(尽管这种差异在大多数情况下可以忽略不计)。

结论

选择BIGINT还是DATETIME取决于你的具体需求。如果你需要灵活性、精度和可能的性能优势,可以选择BIGINT。但如果你更看重可读性和易用性,并且不需要毫秒级的精度,那么DATETIME可能是一个更好的选择。在实际应用中,很多开发者更倾向于使用DATETIME类型,因为它提供了更好的人类可读性和易用性。

4. 了解了以上信息后,我们再看下 我们通常的业务流程图!

标签:int,DATETIME,日期,BIGINT,时间,类型,继续
From: https://www.cnblogs.com/del88/p/18144226

相关文章

  • 继续记录mdt+wds的bug Verify BCDBootEx
    简介配置又出错了从来没想过,居然有这么多错。巨硬啊。难啃啊。Windows10deploymentsfailwithMicrosoftDeploymentToolkitoncomputerswithBIOStypefirmware-MicrosoftSupport使用MDT部署BISO系统时,Operatingsystemdeploymentdidnotcompletesuccessfull......
  • 继续MDT的bug,
    简介这个据说是多播的bug 如果你真的想使用多重广播,这是我如何解决这个问题的。获取Windows11ISO(x64)挂载ISO,在 sources 文件夹中,您需要 2个文件wdscommon.dll和imagelib.dll将这些文件复制到 x64文件夹>mdt部署共享>工具(例如,在我的文件夹中,这是E:\Deployme......
  • 英雄联盟显示缺失vsddrv.dll无法继续怎么解决?英雄联盟vsddrv.dll丢失深入修复指南
    在《英雄联盟》(LeagueofLegends,简称LOL)中遇到提示“缺失vsddrv.dll”文件导致游戏无法继续的情况,很多玩家都不知道应该怎么解决?下面一起来看看相关的原因及解决方法介绍吧!一、原因系统文件损坏:操作系统在使用过程中,可能会出现文件损坏的情况,导致dll文件缺失。软件卸载不......
  • 想请教一下,selenium可以做到点击这个继续嘛?
    大家好,我是Python进阶者。一、前言前几天在Python钻石交流群【盼头】问了一selenium的问题,问题如下:想请教一下,selenium可以做到点击这个继续嘛?二、实现过程这里【此类生物】给了一个解答:可以,switchtoalert。顺利地解决了粉丝的问题。如果你也有类似这种Python相关的小问......
  • PySide2-QThread创建、终止、暂停、继续、延时功能实现
    程序实现了一个能够显示0-99数字循环进度的功能,并提供了进度查看、暂停、继续及终止操作。importsysimporttimefromPySide2.QtCoreimport(QObject,QThread,Qt,Signal,QTimer,QCoreApplication,QEventLoop,Slot,)fromPy......
  • 继续分享 Ti-FlowChart 可视化组件 0.2.1
    望向窗外月亮很亮,今晚继续分享组件开发状态。目前版本是0.2.1(npminstallti-flowchart)版本发布LOG:1.UI介入对局部的样式进行规范化。2.新增流转线动效,让用户能直观看出流向。3.新增操作界面的缩放能力,方便用户可以直观全景。组件的目标:组件UI色调大气,成品......
  • 全面修复-由于找不到d3dx9_43.dll,无法继续执行代码
    在计算机打开游戏和运行过程中,常常会遇到一些错误提示,其中最常见的就是缺少某个动态链接库(DLL)文件。而d3dx9_43.dll文件就是其中之一。本文将对d3dx9_43.dll文件进行总体介绍,帮助读者了解该文件的作用、安装方法以及常见问题的解决方法。 一,d3dx9_43.dll文件对系统的用途......
  • 【日志】定时任务每分钟都执行了,但是业务日志却不再继续打印
     发现问题:一个应用,在跑定时任务,每分钟跑一次,arthas发现定时任务每分钟都在执行,但是日志文件却一条业务日志都没打印出来。发现问题时候,是下午15点,但是日志文件显示最近一条业务日志是凌晨5点打印出来的。而且,日志文件的时间戳,也是下午15点,即代表往日志文件写的动作一直都在......
  • 继续nodejs
    昨天学习完了读写模块,今天继续学习Path路径模块1、路径拼接,path.join方法用法很简单,首先,使用路径模块要声明个常量,constpath=require(‘path’)然后直接使用就好了,constfpath=path.join(‘路径1’,‘路径2’,‘路径3’,‘路径4’,‘路径5’)输出的结果就是这几个路径连在一起......
  • Android使用MediaRecorder进行录像,暂停和继续录像的VideoUtils
    使用MediaRecorder进行录像,要注意再设置MediaRecorder的参数的时候设置,这里也是查了网上很多代码都没有一个完整能实现的,或多或少都有点问题。还有再暂停/继续录制的时候要注意将Camera的预览关闭camera.stopPreview()不然预览的界面还是会继续动给人暂停了还在录制的错觉。还有......