【问题标题】:Is there a way to simply `select * from myTable` and get the timestamps as Unix time?有没有办法简单地从 myTable 中选择 * 并将时间戳作为 Unix 时间?
【发布时间】:2016-06-03 20:24:40
【问题描述】:

我在 mySql 中将 DateTime 数据保存为时间戳,我需要将数据检索为 Unix 时间戳。

我可以使用select UNIX_TIMESTAMP(timestampData) from myTable

但我通常select * from myTable1 join myTable2 on .... 在某些情况下最多可以得到 50 个字段。

这意味着我必须:

  • 选项 1:select *, UNIX_TIMESTAMP(timestamp1), UNIX_TIMESTAMP(timestamp2) from myTables 我会得到两次数据,而且很难维护
  • 选项 2:select c1, c2, c3,... , UNIX_TIMESTAMP(timestamp1), UNIX_TIMESTAMP(timestamp2) from myTables。这将更难编写和维护。

问题是有没有办法简单地select * from myTable 并将时间戳作为 Unix 时间?

【问题讨论】:

  • 不,没有。如果你想要这样,你应该首先将它们存储为 unix 时间戳。
  • 您不想选择所有带 * 的字段。这是不好的做法。您应该只选择需要的字段。
  • 如果将 unix_timestamped 字段别名为相同的字段名,会发生什么情况? SELECT *, UNIX_TIMESTAMP(timestamp1) AS timestamp1, UNIX_TIMESTAMP(timestamp2) AS timestamp2 ... 从头到尾覆盖重复的字段值可能会有所帮助,但这取决于问题中未知的控制器。
  • 试试这个:select myTable1.*, myTable2.*, UNIX_TIMESTAMP(timestamp1) as unix_timestamp1, UNIX_TIMESTAMP(timestamp2) as unix_timestamp2, from myTable1 join myTable2 on ...

标签: mysql unix-timestamp


【解决方案1】:

处理此问题的最简单方法可能是在您的应用程序中解析接收到的时间。除此之外,选项 2 是我通常在专业环境中看到这些事情的方式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-30
    • 2017-04-25
    • 1970-01-01
    • 1970-01-01
    • 2017-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多