我已经更新了一个列,声明为updated时间戳,它是惟一的时间戳类型列。
当我做select updated from pushinfo;时
我得到了
+---------------------+
| updated |
+---------------------+
| 2017-04-11 15:33:46 |
| 2017-04-11 15:35:02 |
| 2017-04-12 10:15:54 |
+---------------------+当我使用select FROM_UNIXTIME(updated) from pushinfo;时
我得到了
| FROM_UNIXTIME(updated) |
+------------------------+
| NULL |
| NULL |
| NULL |为什么FROM_UNIXTIME不能工作?
当我使用这个查询时
conn.query(' select updated from pushinfo')我正在更新像YYYY-MM-DDTHH:MM:SS.000Z这样的东西,有什么问题吗?
如何获得HH:MM:SS YYYY-MM-DD等格式?
发布于 2017-04-12 05:57:37
FROM_UNIXTIME需要一个Unix时间戳参数(即一个整数,即自Unix以来的秒数)。你必须使用格式()。这是因为即使列被定义为时间戳,MySQL还是以日期而不是时间戳的形式返回值。这是时间戳类型列的MySQL的默认行为。要获得实际的时间戳值,必须使用时间戳()。
所以你的查询就像
conn.query(' select DATE_FORMAT(updated, "%H:%i:%s %Y-%m-%d") from pushinfo')选择updated列时所得到的是MySQL服务器默认日期格式中该列的值。
你问题的标题与其馀部分无关。您永远不会从Unix时间戳中获得本地时间,因为这总是以Zulu时间(即UTC)表示的。
https://stackoverflow.com/questions/43361350
复制相似问题