我有很多时间戳列,我需要使用混合时区。用户时区设置为我用于前端的语言,因此我需要MySQL从select *返回unix时间戳。有没有办法在从MySQL时间戳列中获取数据时关闭自动格式化?
答案 0 :(得分:4)
YYYY-MM-DD HH:MM:SS
是MySQL中timestamp列的默认表示。我不相信你可以在全球范围内改变它。
两个选项:
不要执行SELECT *
,而是执行SELECT *, UNIX_TIMESTAMP(your_timestamp_column) AS your_timestamp
,这会在结果中添加一个Unix格式的your_timestamp
列。
为每个执行相同操作的表格制作一个视图(CREATE VIEW
),例如
CREATE VIEW your_view AS
SELECT *, UNIX_TIMESTAMP(your_timestamp_column) AS your_unix_timestamp
FROM your_table;
然后你可以做SELECT * FROM your_view;
并获取你的Unix时间戳,而不会在查询中添加任何内容。
答案 1 :(得分:1)
是
您可以将字段包装在UNIX_TIMESTAMP函数中,如下所示:
从your_table中选择UNIX_TIMESTAMP(your_timestamp_column);
有关此以及其他mysql数据和时间函数的更多信息,请参阅: http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_unix-timestamp