【问题标题】:What is the internal representation of timestamp values in MySQLMySQL中时间戳值的内部表示是什么
【发布时间】:2017-01-28 14:05:21
【问题描述】:

我有一个 .dat 文件,它代表数据库中的一个表,并且有一个特定列用于 timestamp 值。现在这些值以下列方式存储:-

978302039

我需要将所有元素复制到另一个表中,但我不确定包含这些值的列应该是int 还是timestamp。据我所知,我们以以下格式存储timestamp 值:-

1000:09:12 00:00:00

但是这些存储在这里的值看起来并不像那样。 timestamp 值是否有任何内部表示?

【问题讨论】:

    标签: mysql database timestamp sql-timestamp


    【解决方案1】:

    978302039 看起来像一个以秒为单位的 unix 时间戳。您可以使用FROM_UNIXTIME() 函数将其转换为 MySQL 的 DATETIME。

    SELECT FROM_UNIXTIME(978302039)
    

    会返回类似的东西

    2000-12-31 22:33:59
    

    确切的值取决于您的服务器的时区配置。

    【讨论】:

      【解决方案2】:

      MySQL Documentation

      MySQL 可识别以下格式的 TIMESTAMP 值:

      作为YYYYMMDDHHMMSSYYMMDDHHMMSS 格式的数字, 前提是该数字作为日期有意义。例如, 19830905132800 和 830905132800 被解释为 '1983-09-05 13:28:00'。

      这样一来,您发布的值在我看来就像是无效的 timestamp

      【讨论】:

      • 但是我的文件中的数字应该代表timestamp 值,因为它的位数较少。会不会是以毫秒为单位的时间表示?
      猜你喜欢
      • 2010-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-05
      • 1970-01-01
      • 1970-01-01
      • 2010-12-06
      • 1970-01-01
      相关资源
      最近更新 更多