首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >选择minute( now()-ins_time )返回null

选择minute( now()-ins_time )返回null
EN

Stack Overflow用户
提问于 2017-05-18 15:17:08
回答 1查看 71关注 0票数 0

我有一个简单的报告,一些用户可以运行它来检查我们是否从外部源接收到数据。它计算自最后一行更新后的分钟数,其中INS_TIME是接口插入数据的时间。

下面的代码。

代码语言:javascript
复制
select minute( now()-ins_time )  as LastUpdateMinutes 
from p_electro 
order by ins_time desc limit 1

这是很好的工作,并在水晶报告中使用。不过,我正试图用额外的复杂性为另一张表再做一张。我复制了上面的代码,并按下面的方式添加到其中。

代码语言:javascript
复制
select minute( now()-ins_time )  as LastUpdateMinutes 
from p_treats
where location like '%e5%' and creator is null
order by ins_time desc limit 1

这个标准应该基本上表明行是由接口插入的,然后显示上次输入的记录。然而,当我运行它时,它成功地运行,但我得到一个空返回(如下所示)。

代码语言:javascript
复制
LastUpdateMinutes
-----------------
|   NULL        |

我期待着看到数千分钟,因为我们从上午11点1305.17开始就没有收到任何数据。

这对于第一张表来说很好,并且已经使用多年了。

为了添加一些上下文,我们的数据办事员每天运行该报告两次,如果以分钟为单位的时间超过20分钟,则报告。在第二张表中,我们已经有5天没有收到数据了(多亏了这次网络攻击之后采取的措施),直到灯泡在我脑海中点燃时,它才被标记出来,这可能会受到影响。

我想为这个表创建另一个报告,我们可以将它添加到办事员的日常检查中,并更快地了解丢失的数据。

有人对为什么第二个例子不起作用有任何建议,但是第一个例子有效吗?以及如何修复它?

我尝试了多个语法,大致如下:

代码语言:javascript
复制
SELECT 
datediff(now(), ins_time) AS DiffDate
FROM
p_treats
WHERE
location LIKE 'e5%' and 
creator is null
ORDER BY ins_time DESC
LIMIT 1

它实际上可以减少天数,并且:

代码语言:javascript
复制
SELECT 
timediff(now(), ins_time) AS DiffDate
FROM
p_hdtreatment
WHERE
hpwhere LIKE 'e5%' and 
creator is null
ORDER BY ins_time DESC
LIMIT 1 

它返回时间,这可能是我们实际使用的,但我想让它更准确一点。

提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-18 19:46:28

尝尝这个。

代码语言:javascript
复制
SELECT TIMESTAMPDIFF(MINUTE, ins_time, now()) AS LastUpdateMinutes
from p_treats
where location like '%e5%' 
and creator is null
order by ins_time desc limit 1

结帐-> MySQL TimeStampDiff

边注:

在第一个“工作”例子中使用的分钟(),我认为是给出了错误的答案。分钟()只提取日期/时间字符串的分钟部分。例如:选择分钟(‘2008-02-03 10:05:03')产量5

假设"ins_time“是数据类型"TimeStamp”或"DateTime",如果分钟(now()- ins_time)的结果大于1小时,则您的答案是错误的。我需要更多的测试才能确定。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44051733

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档