【发布时间】: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