Php unix_时间戳日期和时差
我已将三个基本时间戳和时间存储到我的数据库表中,格式如下:Php unix_时间戳日期和时差,php,mysql,date,Php,Mysql,Date,我已将三个基本时间戳和时间存储到我的数据库表中,格式如下: mysql> select receivedtime, requesttime, sla from table; +---------------------+---------------------+----------+ | receivedtime | requesttime | sla | +---------------------+---------------------+-
mysql> select receivedtime, requesttime, sla from table;
+---------------------+---------------------+----------+
| receivedtime | requesttime | sla |
+---------------------+---------------------+----------+
| 2013-05-26 22:37:04 | 2013-05-26 12:37:04 | 02:59:59 |
| 2013-05-26 14:36:44 | 2013-05-21 12:39:09 | 72:00:00 |
+---------------------+---------------------+----------+
2 rows in set (0.00 sec)
我需要提出如下几个条件:
difference = (receivedtime - requesttime);
if [difference <= sla]
{
show meet
} else {
show don't meet
}
我已经检查了mysql的UNIX\u TIMESTAMP()
,以及php的strotime()
和其他一些尝试
我还检查了几个线程@stackoverflow.com,但我找不到合适的解决方案
任何想法 这是一个日期时间字段,而不是时间戳字段。你应该从读懂时间戳是什么开始
您可以通过转换为时间戳然后进行减法来计算差异
$recieved = strtotime($res['receivedtime']);
$requested = strtotime($res['requesttime']);
$difference = $recieved - $requested;
if($difference <= $sla){
//do stuff
}
$received=strotime($res['receivedtime']);
$requested=strottime($res['requesttime']);
$difference=$received-$requested;
如果($difference这是一个日期时间字段,而不是时间戳字段。您应该从读取时间戳开始
您可以通过转换为时间戳然后进行减法来计算差异
$recieved = strtotime($res['receivedtime']);
$requested = strtotime($res['requesttime']);
$difference = $recieved - $requested;
if($difference <= $sla){
//do stuff
}
$received=strotime($res['receivedtime']);
$requested=strottime($res['requesttime']);
$difference=$received-$requested;
如果($difference,您可以在SQL中执行此操作
SELECT (UNIX_TIMESTAMP(receivedtime) - UNIX_TIMESTAMP(requesttime)) AS difference FROM table
它以秒为单位给出差异。您可以在SQL中实现这一点
SELECT (UNIX_TIMESTAMP(receivedtime) - UNIX_TIMESTAMP(requesttime)) AS difference FROM table
它以秒为单位显示差异。检查和功能:
SELECT
`receivedtime`,
`requesttime`,
`sla`,
(SEC_TO_TIME(TIMESTAMPDIFF(SECOND, `requesttime`, `receivedtime`)) < `sla`) as `meet`
FROM
`table`;
选择
`接收时间`,
`请求时间`,
`sla`,
(秒到秒时间(TIMESTAMPDIFF(秒,`requesttime`,`receivedtime`))<`sla`)为`meet``
从…起
`表`;
检查和功能:
SELECT
`receivedtime`,
`requesttime`,
`sla`,
(SEC_TO_TIME(TIMESTAMPDIFF(SECOND, `requesttime`, `receivedtime`)) < `sla`) as `meet`
FROM
`table`;
选择
`接收时间`,
`请求时间`,
`sla`,
(秒到秒时间(TIMESTAMPDIFF(秒,`requesttime`,`receivedtime`))<`sla`)为`meet``
从…起
`表`;
试试看
选择receivedtime,
请求时间,
TIMESTAMPDIFF(秒、requesttime、receivedtime)<时间到秒(sla)时的情况
然后“满足”或“不满足”结束sla
来自表1
这里是演示试试看
选择receivedtime,
请求时间,
TIMESTAMPDIFF(秒、requesttime、receivedtime)<时间到秒(sla)时的情况
然后“满足”或“不满足”结束sla
来自表1
这里是演示试试这个
select TIMESTAMPDIFF(SECOND,`requesttime`,`receivedtime`) as timeDiff FROM `table`
WHERE TIMESTAMPDIFF(SECOND,`requesttime`,`receivedtime`) > TIME_TO_SEC(`sla`)
你可以在中找到相关信息,试试这个
select TIMESTAMPDIFF(SECOND,`requesttime`,`receivedtime`) as timeDiff FROM `table`
WHERE TIMESTAMPDIFF(SECOND,`requesttime`,`receivedtime`) > TIME_TO_SEC(`sla`)
您可以在中找到相关内容,请尝试从数据库中选择以下内容
select TIMESTAMPDIFF(SECOND, receivedtime, requesttime) as difference, TIME_TO_SEC(sla) as slasecs from table
然后你就可以做你的工作了
if [difference <= sla]
{
show meet
}
else
{
show don't meet
}
如果[difference尝试从您的数据库中这样选择
select TIMESTAMPDIFF(SECOND, receivedtime, requesttime) as difference, TIME_TO_SEC(sla) as slasecs from table
然后你就可以做你的工作了
if [difference <= sla]
{
show meet
}
else
{
show don't meet
}
if[difference]你说的meet
是什么意思。你想在meet
中得到什么?为什么UNIX\u TIMESTAMP
不起作用?我的意思是meet
是可以的,而不满足
是不可以的,我认为我的执行是正确的。但是,我被UNIX\u TIMESTAMP()
。现在我确认查询@CORRUPT answer确实正确。你所说的meet
是什么意思。你想在meet
中做什么?为什么UNIX\U TIMESTAMP
不起作用?我的意思是meet
是肯定的/好的,不肯定的/不好的,我认为我的执行是正确的。但是,我对U感到困惑NIX_时间戳()
。现在我确认查询@CORRUPT answer是正确的。我觉得没问题……谢谢老兄,我觉得没问题……谢谢老兄,什么都是varchar而不是timestamp@Deonia没什么,这只是测试的虚拟设置。如果这是否决投票的原因,我肯定可以纠正这一点。什么都是varchar而不是timestamp@Deonia没什么,这只是测试的虚拟设置。如果这是否决投票的理由,我肯定可以纠正这一点。。