【问题标题】:Convert SQLite to MySQL datetime将 SQLite 转换为 MySQL 日期时间
【发布时间】:2022-11-29 15:15:24
【问题描述】:

我有 SQLite DB 一个表包含日期时间字段

数据类型为“timestamp”的 REAL 值为 17889.0

所以,我想把这个 17889.0 值转换成 MySQL Y-m-d

我没有在网上找到任何解决方案。任何帮助,将不胜感激。

SQLite 时间戳转换为 MySQL 时间戳。

【问题讨论】:

    标签: php mysql sqlite date datetime


    【解决方案1】:

    尝试这个:

    <?php
        echo date('Y-m-d H:i:s', 17889);
    ?>
    

    输出: 1970-01-01 04:58:09

    【讨论】:

      【解决方案2】:

      存储在REAL 数据类型中的 SQLite 日期将日期存储为 Julian Day

      来自https://www.sqlite.org/datatype3.html

      实际作为儒略日数字,自公元前 4714 年 11 月 24 日格林威治中午以来的天数。根据公历。

      PHP 有一个jdtogregorian 函数,其中一个注释有一个handy function to convert to ISO8601 dates

      function JDtoISO8601($JD) {
          if ($JD <= 1721425) $JD += 365;
          list($month, $day, $year) = explode('/', jdtogregorian($JD));
          return sprintf('%+05d-%02d-%02d', $year, $month, $day);
      }
      
      echo JDtoISO8601('17889.0');
      // Results in -4664-11-16
      

      结果看起来不太对,在 SQLite 中肯定是 17889.0 吗?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-07-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多