我有变量,其值为1506947452,需要使用公式从该日期提取分钟:started_data - now_date但是start_date是unix时间戳格式的10位数int ...我以ajax形式收到并需要输入mysql查询我试试这个:
SELECT TIMESTAMPDIFF(MINUTE, 1506947452, UNIX_TIMESTAMP());
但是我从终端得到了这个:
+-------------------------------------------------------+
| TIMESTAMPDIFF(MINUTE, '1506947452', UNIX_TIMESTAMP()) |
+-------------------------------------------------------+
| NULL |
+-------------------------------------------------------+
1 row in set, 1 warning (0.00 sec)
那么我如何比较unix_timestamp格式的两个日期并获得分钟? 我需要将unix_timestamp用于start_date,以便其他日期格式不是解决方案。
答案 0 :(得分:3)
UNIX_TIMESTAMP是' 1970-01-01 00:00:00'在UTC中。如果你有一个变量持有另一个UNIX_TIMESTAMP,你可以得到差异并将秒转为几分钟(并在需要时舍入/截断结果):
SELECT ROUND((UNIX_TIMESTAMP()-1506947452) / 60, 0)
答案 1 :(得分:0)
我使用以下方法修复它:
SELECT TIMESTAMPDIFF(MINUTE, FROM_UNIXTIME('1506950440'), NOW());
这个想法是将unixtime转换为正常日期,然后将它与now()datetimestamp进行比较......所以我明白了:
mysql> SELECT TIMESTAMPDIFF(MINUTE, FROM_UNIXTIME('1506950440'), NOW());
+-----------------------------------------------------------+
| TIMESTAMPDIFF(MINUTE, FROM_UNIXTIME('1506950440'), NOW()) |
+-----------------------------------------------------------+
| 2 |
+-----------------------------------------------------------+
1 row in set (0.01 sec)