why*_*d.i 7 mysql unix-timestamp
我有一个数据库使用unix时间作为其日期(我正在使用mySQL).我想以每日日期格式检索日期.这是我的查询:
SELECT FROM_UNIXTIME(time_created) FROM member
Run Code Online (Sandbox Code Playgroud)
这适用于1970年以后的日期(例如,1314162229),但不适用于1970年之前的日期(例如,-769338000).这附近有工作吗?
一种可能的解决方法是在一定年限内具有与秒数相对应的恒定方便(最好是4的倍数).您可以添加此常量,转换时间,然后减去所选的年数.
示例:选择40年.
确定常数:
MySQL [files]> select adddate(from_unixtime(0), interval 40 year);
+---------------------------------------------+
| adddate(from_unixtime(0), interval 40 year) |
+---------------------------------------------+
| 2010-01-01 01:00:00 |
+---------------------------------------------+
1 row in set (0.09 sec)
MySQL [files]> select unix_timestamp(adddate(from_unixtime(0), interval 40 year));
+-------------------------------------------------------------+
| unix_timestamp(adddate(from_unixtime(0), interval 40 year)) |
+-------------------------------------------------------------+
| 1262304000 |
+-------------------------------------------------------------+
1 row in set (0.09 sec)
Run Code Online (Sandbox Code Playgroud)
现在,您可以x在1930年到20xx年之间使用每个unix时间戳并使用它.
select subdate(from_unixtime(x+1262304000), interval 40 year);
Run Code Online (Sandbox Code Playgroud)
用你的例子-769338000,你得到
MySQL [files]> select subdate(from_unixtime(-769338000+1262304000), interval 40 year);
+-----------------------------------------------------------------+
| subdate(from_unixtime(-769338000+1262304000), interval 40 year) |
+-----------------------------------------------------------------+
| 1945-08-15 17:00:00 |
+-----------------------------------------------------------------+
1 row in set (0.09 sec)
Run Code Online (Sandbox Code Playgroud)
小智 6
我发现了一种新的方式:
转换为MySQL日期:
SELECT DATE_ADD(FROM_UNIXTIME(0), interval YOURTIMESTAMPHERE second);
Run Code Online (Sandbox Code Playgroud)
将您的纪元转换为日期字符串:
SELECT DATE_FORMAT(DATE_ADD(FROM_UNIXTIME(0), interval YOURTIMESTAMPHERE second), '%Y-%m-%d');
Run Code Online (Sandbox Code Playgroud)
然后回来
SELECT TIMESTAMPDIFF(second,FROM_UNIXTIME(0),'1960-01-01 00:00:00' );
Run Code Online (Sandbox Code Playgroud)
来源:http: //www.epochconverter.com/programming/mysql-from-unixtime.php#negavtiveEpoch