微时间的十进制长度(真)?

2024-04-05

我想将 PHP 的微时间存储为 MySQL 中的时间戳。

我去过told https://stackoverflow.com/a/8092029/1382306最好将其存储在DECIMAL,但我找不到理想的尺寸。

有谁知道最大尺寸是多少microtime(true)返回,所以我可以将其作为我的数据类型长度?

我应该选择变量吗DECIMAL length?


长话短说;博士。使用 microtime(false) 并将结果以百万分之一秒的形式存储在 MySQL bigint 中。否则你必须学习所有关于浮点运算的知识,这是一个大毛球。

PHP microtime 函数从一个系统调用获取 Unix 时间戳(当前约为十六进制 50eb7c00 或十进制 1,357,609,984),并从另一个系统调用获取微秒时间。然后它将它们变成一个字符串。然后,如果您使用 (true) 调用它,它会将该数字转换为 64 位 IEEE 745 浮点数,PHP 将其称为float.

截至目前,您需要小数点左侧十个十进制数字来存储整数 UNIX 时间戳。这种情况一直持续到公元 2280 年左右,届时您的后代将开始需要 11 位数字。您需要小数点右侧的六位数字来存储微秒。

您不会获得完全微秒的精度。大多数系统保持其亚秒级系统时钟的分辨率在 1-33 毫秒范围内。它依赖于系统。

MySQL 版本 5.6.4 及更高版本允许您指定DATETIME(6)列,它将保存微秒分辨率的日期和时间。如果您使用这样的 MySQL 版本,那绝对是正确的选择。

5.6.4版本之前,需要使用MySQLDOUBLE(IEEE 754 64 位浮点)来存储这些数字。 MySQLFLOAT(IEEE 754 32 位浮点)尾数中没有足够的位来完全准确地存储当前的 UNIX 时间(以秒为单位)。

为什么要存储这些时间戳?你希望做吗

  WHERE table.timestamp = 1357609984.100000

或类似的查询来查找特定项目?如果您在处理链中的任何位置使用浮点数或双精度数(也就是说,即使您使用microtime(true)哪怕只有一次)。他们因无法平等而臭名昭著,即使你认为他们应该平等。相反,你需要使用这样的东西。这0.001ì 在数值加工贸易中称为“epsilon”。

  WHERE table.timestamp BETWEEN 1357609984.100000 - 0.001
                            AND 1357609984.100000 + 0.001

或类似的东西。如果将这些时间戳存储为小数或百万分之一秒,则不会出现此问题bigint column.

IEEE 64 位浮点有 53 位尾数——精度。当前 UNIX 纪元时间戳(自 1970 年 1 月 1 日 00:00Z 起的秒数)乘以一百万使用 51 位。因此,如果我们关心低位,则 DOUBLE 中没有太多额外的精度。另一方面,精度在几个世纪内都不会耗尽。

使用 int64(BIGINT),您远不会耗尽精度。如果我实际上只是为了在 MySQL 中排序而存储微秒时间戳,我会选择DATETIME(6)因为我可以免费得到很多日期算术。如果我正在做一个内存中的高容量应用程序,我会使用 int64。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

微时间的十进制长度(真)? 的相关文章

  • 使用csv文件-PHP创建表到mysql时添加反引号

    我有一个 php 代码 它将使用 csv 文件创建一个到 mysql 数据库的表 然而 某些列标题没有被 mysql 读取 mysql 唯一一次读取查询是当我添加反引号 您能帮助我在查询中的何处添加反引号吗 这是我的代码 file C Us
  • MYSQL嵌套查询运行速度很慢?

    以下查询不断超时 是否有开销更少的方法来实现相同的功能 UPDATE Invoices SET ispaid 0 WHERE Invoice number IN SELECT invoice number FROM payment allo
  • Composer 已安装,但获取 /usr/bin/env: php: No such file or directory

    在 CentOS 7 上 我安装了 PHP 7 1 然后我安装了作曲家 cd tmp curl sS https getcomposer org installer php71 gt used php71 instead of php ph
  • 严格标准:在 wordpress/wp-includes/class-oembed.php 第 116 行中,仅应通过引用传递变量

    我已经查看了很多类似的问题 但关于我的代码 我没有得到它 错误 Strict Standards Only variables should be passed by reference in wordpress wp includes c
  • MySQL 偏移无限行

    我想构造一个查询 显示表中的所有结果 但从表的开头偏移 5 据我所知 MySQLLIMIT需要一个限制和一个偏移量 有什么办法可以做到这一点吗 来自MySQL LIMIT 手册 http dev mysql com doc refman 5
  • PHP邮件发送附件但附件为空

    基本上 我正在尝试通过 PHPMail 发送 PDF 电子邮件已发送 我在 Outlook 中完美收到 问题是附件已损坏并且无法打开 我什至尝试发送 HTML 但也是空的 我尝试在论坛中进行研究 尝试了几个 工作代码 其他人让它与此代码一起
  • 从 MySQL 列创建 PHP 数组

    mysql fetch array会给我一个获取行的数组 从一列中所有行的值生成数组的最佳方法是什么 您可以循环遍历数组并创建一个新数组 如下所示 column array while row mysql fetch array info
  • 在 php 中进行 AES 加密,然后用 Javascript (cryptojs) 解密

    我正在寻找一种对简单文本 5 到 6 个数字和 或字符 进行双向加密的方法 问题是我想在 php 中进行加密 然后通过 Javascript 解密 对于 php 我已经使用 mcrypt encode 进行了测试并使其正常工作 因此当我尝试
  • JavaScript 中最大长度的正则表达式

    如何限制与正则表达式匹配的字符串的长度 我假设var sixCharsRegEx 6 7 只匹配长度为 6 或 7 的字符串 but no http jsfiddle net FEXbB http jsfiddle net FEXbB 我缺
  • waitUntilObjectExists() Amazon S3 PHP SDK 方法,它到底是如何工作的?

    该函数是否会暂停 php 脚本 直到在 s3 服务器上找到该对象 我将它放在 foreach 循环中 一张一张地上传图像 找到对象后 我调用一个方法在本地删除图像 然后删除本地文件夹 如果为空 这是正确的处理方式吗 谢谢 foreach f
  • 从 BitBucket 请求 OAuth 令牌

    在过去的 4 个小时里 我一直在尝试将 BitBucket 集成到我的应用程序中 但没有成功 在阅读的过程中BitBucket 的 RESTful API 文档 https confluence atlassian com display
  • 使用 Doctrine2 时的多重歧视级别

    我正在使用 Doctrine2 来管理我的模型 如下 有一个抽象概念Content与复合模式Gallery 也是一个抽象概念Media从中Video and Image继承 我的选择是添加鉴别器Content and Media表以便区分G
  • 如何通过 PEAR 安装旧版本的 PHPUnit?

    我想将 PHPUnit 3 4 的安装降级到 3 3 我只是不知道该怎么做 如何使用 PEAR 在 Ubuntu 上安装 PHPUnit 3 3 版本 您需要知道要降级到的确切版本号 在撰写本文时 您所使用的最后一个版本是 3 3 17 可
  • 验证 Laravel 中的选择表单

    我的联系表上有这个 html div class form group div
  • 计算网站上多个文件的下载次数的最佳方法[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 问题是 计算网站上多个文件的下载次数的最佳方法 我正在尝试做的事情 跟踪并统计多个文件的下载数量 对于具有不同扩展名的文件 foo z
  • 无法在 MySQL 中运行查询语法错误意外

    我正在运行工作台 5 2 47 我写了一个很长的程序 用于基本数据检查 如果数据库中不存在记录 则将插入该记录 该过程保存时没有任何问题 但当我尝试运行它时 MySQL 5 5 抛出错误 它很长 里面有很多公司敏感数据 或者我会把它发布在这
  • Laravel 5 模型 $cats 到数组 utf-8 JSON_UNESCAPED_UNICODE

    当您有一个数组字段并将其保存在数据库中时 它会对数组进行漂亮的 json encode 但没有 JSON UNESCAPED UNICODE 选项 数据最终如下所示 en u039d u03ad u03b1 这几乎没什么用 解决方案当然是使
  • 使用 Assetic PHP 通过 RVM 安装后 Sass 损坏

    我正在尝试设置 Assetic PHP 资源编译器 并且它可以与 CoffeeScript Stylus 和 Less 一起使用 所有 NPM 包都运行良好 然而 对于 Sass 我遇到了问题 以下是我到目前为止所采取的步骤 我安装了 RV
  • PHP - 从图像创建一张图像

    我有 n 张图像 想用 php 代码创建一张 我使用 imagecopymerge 但无法成功 请举一些例子 Code numberOfImages 3 x 940 y 420 background imagecreatetruecolor
  • 限制 WooCommerce 上的域名注册

    如何限制用户电子邮件对 WooCommerce 注册中特定域的访问 我发现这段代码可以做到这一点 但由于某种原因它在 WooCommerce 注册表单上不起作用 如果我进入 WP 登录页面 它就会起作用 任何帮助表示赞赏 function

随机推荐

  • 使用数组作为 CGridView 的数据源

    我希望这能起作用 我正在编写和开票应用程序 并希望将当前发票保存在一个数组中 该数组可以存放在 blob 字段中 这也将用于存档更改等 发票的销售项目使用CGridView 显示 唯一的事情是所有文档都说数据源应该是 IDataProvid
  • Android CameraX 如何实现广角/缩小

    我尝试使用以下方法为我的应用内相机实现广角选项CameraXapi 但遇到了一个问题 CameraControl setZoomRatio允许设置缩放范围ZoomState getMinZoomRatio and ZoomState get
  • Sublime Text 2 / Sublime Text 3 在 osx 上恢复未保存的文件

    在 Sublime 中 我知道即使您稍后不将更改保存在文件中 您也可以从上次停下的地方开始 我在 sublime 中打开了一个新选项卡 并在保存文件之前关闭了应用程序 sublime 是否在计算机中的某个位置保存临时文件 我使用的是 MAC
  • 存储库和工作单元模式 - 如何保存更改

    尽管此类问题被问了很多次 但我仍在努力理解存储库和工作单元模式之间的关系 本质上我仍然不明白哪一部分将保存 提交数据更改 存储库还是工作单元 由于我见过的每个示例都与将它们与数据库 或映射器结合使用有关 让我们制作一个更有趣的示例 让我们将
  • 如何为引导选项卡提供外部链接

    我在 ASP NET MVC 项目中使用引导选项卡 在此选项卡中 我需要提供外部链接 以便当用户单击特定选项卡时 它将重定向到特定链接 基本上我有四个控制器 现在 当用户单击选项卡时 我需要重定向到每个控制器 下面是我尝试使用的代码 但它不
  • 由于 SparkContext 关闭,作业被取消

    在 jupyter 笔记本中运行我的 Spark 程序时 出现错误 作业被取消 因为 SparkContext 已关闭 我在没有 hadoop 的情况下使用 Spark 同一个程序之前给出了输出 但现在显示错误 知道为什么会发生错误 我的代
  • ImagePullBackOff 与 Minikube 的本地存储库

    我正在尝试使用 minikube 和 kitematic 在本地计算机上测试 Kubernetes 但是 kubernetes 无法在我的本地存储库中提取映像 ImagePullBackOff 我试图用这个来解决它 使用 Minikube
  • POSIX 线程何时取消不是立即的?

    POSIX 指定了两种线程取消类型 PTHREAD CANCEL ASYNCHRONOUS and PTHREAD CANCEL DEFERRED 通过设置pthread setcanceltype 3 确定何时pthread cancel
  • 错误 C2440:“初始化”:无法从“初始化列表”转换为“std::vector>”

    我尝试编译以下代码 vector
  • 编译器优化还是我的误解

    最近我正在测试一些 C 的深奥和黑暗的角落 我对一个微妙的点感到困惑 我的测试其实很简单 problem 1 no any constructor call g acts as a function declaration to the h
  • 在 Angular JS 中跳过 ng-repeat JSON 排序

    有谁知道我怎样才能SKIP当我使用 ng repeat 时 JSON 完全排序 可能以一种轻松的方式 例如 我的源 JSON 看起来像这样 title Title description Description moreInfo Morei
  • 将 JSR-303 验证错误转换为 Spring 的 BindingResult

    我在 Spring 控制器中有以下代码 Autowired private javax validation Validator validator RequestMapping value submit method RequestMet
  • ActionBar 的主页图标和标题之间的填充

    有谁知道如何设置 ActionBar 的主页图标和标题之间的填充 EDIT 确保将此可绘制对象设置为LOGO 不像一些评论者那样作为您的应用程序图标 只需制作一个XML可绘制并将其放入资源文件夹 可绘制 中 无需任何密度或其他配置
  • 如何解锁 boost::upgrade_to_unique_lock (由 boost::shared_mutex 制成)?

    所以我有一些shared mutex并这样做了 boost upgrade lock
  • 我有 JSR233 监听器,它在 JMeter 非 GUI 模式下似乎被忽略

    我在 HTTP 请求下有 JSR233 侦听器 它存储所有响应时间值 创建数组 然后对数组进行排序以查找 90 行 然后在达到最终 90 行阈值时标记最后一个事务 请求通过或失败 GUI 中的一切都运行完美 但我使用 Docker Imag
  • sed + 仅当匹配行中的第一个单词时才替换

    以下 sed 命令替换OLD字符串与NEW细绳 我的目标是取代OLD to NEW除非COMMAND单词显示为行中的第一个单词 如何修复我的 sed 语法以便替换OLD with NEW除非COMMAND第一个单词在一行吗 笔记 COMMA
  • ruby rest-client:使其永不超时?

    我正在尝试使用红宝石休息客户端 https github com archiloque rest client 将大量图像上传到我正在编写的网站 我的代码如下所示 RestClient post url timeout gt 9000000
  • r 循环中闪亮的 renderUI

    我想将多个表作为一个 uiOutput 输出 如果我使用循环将它们放在一个列表中 那么所有输出都等于最后一个输出 例子 library shiny ui lt fluidPage mainPanel uiOutput tables serv
  • Python os.path是ntpath,怎么办?

    谁能告诉我Python如何 别名 os path to ntpath gt gt gt import os path gt gt gt os path
  • 微时间的十进制长度(真)?

    我想将 PHP 的微时间存储为 MySQL 中的时间戳 我去过told https stackoverflow com a 8092029 1382306最好将其存储在DECIMAL 但我找不到理想的尺寸 有谁知道最大尺寸是多少microt