是否可以将MySQL配置为默认情况下将TIMESTAMP值作为UNIXTIMESTAMP返回,而不是在SELECT语句中转换每一列?
答案 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)