我有一个简单的报告,一些用户可以运行以检查我们是否已从外部源接收数据。它计算自上一行更新以来的分钟数,其中INS_TIME是接口插入数据的时间。
以下代码。
select minute( now()-ins_time ) as LastUpdateMinutes
from p_electro
order by ins_time desc limit 1
这很好用,可以在Crystal Report中使用。然而,我正在尝试为另一个表格制作另一个具有更多复杂性的表格。我复制了上面的代码并添加到下面。
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
此标准应基本上表示界面已插入行,然后显示自上一次输入以来的分钟数。但是,当我运行它时,它运行成功,但我得到一个NULL返回(如下所示)。
LastUpdateMinutes
-----------------
| NULL |
我期待看到数千分钟,因为自上午11点13分以来我们没有收到任何数据。
这适用于第一张桌子并且已经使用多年。
要添加一些上下文,我们的数据工作人员每天运行两次此报告,并报告以分钟为单位的时间是否超过20分钟。在第二个表格中,我们没有收到5天的数据(这要归功于这次网络攻击后的措施),直到灯泡点燃我的脑袋才发现它可能受到影响。
我想为此表创建另一份报告,我们可以将其添加到文员日常检查中,并尽早了解缺失的数据
任何人都有任何建议为什么第二个例子不起作用,但第一个例子呢?以及如何解决它?
我尝试了多种语法:
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
这实际上可以缩短天数并且:
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
返回小时数,这可能实际上是我们使用的,但我想让它更精确一点。
提前致谢
答案 0 :(得分:1)
试试这个。
@for(int i = 0; i < Model.Count() ; i++)
{
<tr>
<td>
@Html.HiddenFor(modelItem => i.Id)
@Html.DisplayNameFor(modelItem => model.MchName)
</td>
</tr>
}
结帐 - &gt; MySQL TimeStampDiff
旁注:
分钟()用于第一个&#34;工作&#34;例如,我相信给你错误的答案.. minute()只会拉出日期/时间字符串的分钟部分。例如。 SELECT MINUTE(&#39; 2008-02-03 10:05:03&#39;)产生5
假设&#34; ins_time&#34;是数据类型&#34; TimeStamp&#34;或&#34; DateTime&#34;,如果MINUTE(now() - ins_time)的结果大于1小时,则答案是错误的。我需要更多地测试这一点。