是否可以配置MySQL以将TIMESTAMP值作为UNIXTIMESTAMP返回?

时间:2013-03-19 16:36:59

标签: mysql

是否可以将MySQL配置为默认情况下将TIMESTAMP值作为UNIXTIMESTAMP返回,而不是在SELECT语句中转换每一列?

3 个答案:

答案 0 :(得分:1)

MySQL具有将日期转换为unix时间戳的功能。

https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_unix-timestamp

mysql> SELECT UNIX_TIMESTAMP();
        -> 1196440210
mysql> SELECT UNIX_TIMESTAMP('2007-11-30 10:30:19');
        -> 1196440219

答案 1 :(得分:0)

你无法在MySQL配置中这样做。

您可以在应用程序级别执行此操作 - 例如在PHP中,您可以使用mysqli_result::fetch_fields()方法来检测时间戳类型并将其转换,其他连接器将具有类似的方法。

或者您可以按照建议使用UNIX_TIMESTAMP()函数在时间戳列上执行此操作。

答案 2 :(得分:0)

听起来好像你想要一个不同的相同数据视图:

mysql> select * from t;
+------+---------------------+
| data | ts                  |
+------+---------------------+
| foo  | 2013-03-19 16:54:45 |
+------+---------------------+
1 row in set (0.00 sec)

mysql> select data, unix_timestamp(ts) from t;
+------+--------------------+
| data | unix_timestamp(ts) |
+------+--------------------+
| foo  |         1363712085 |
+------+--------------------+
1 row in set (0.00 sec)

mysql> create view tv (data, time_t) as select data, unix_timestamp(ts) from t;
Query OK, 0 rows affected (0.00 sec)

mysql> select * from tv;
+------+------------+
| data | time_t     |
+------+------------+
| foo  | 1363712085 |
+------+------------+
1 row in set (0.00 sec)
相关问题