计算序列中的日期总和(1 /天,彼此相继)

时间:2012-07-20 10:47:58

标签: mysql

我想编写一个查询来计算它们中有多少是顺序的(即,从链接中断开始查明连续多少天)从今天开始并向后倒退。同一日期仅在DB中出现一次。

示例(今天的日期是2012-07-15):

2012-07-14
2012-07-13
2012-07-10

= 2

2012-07-14
2012-07-13
2012-07-12
2012-07-10
2012-07-09

= 3

2 个答案:

答案 0 :(得分:1)

您可以使用函数strtotime()获取日期的time()值。

<?php

$userDate = "2012-07-14";

$pastDate = strtotime($userDate);
$currentTime  = time();
$secondsSince = round($currentTime-$pastDate);
$daysSince    = $secondsSince/86400; // 86400 being the seconds in a day

$preciseNumDays = sprintf("%.2f", $daysSince);

echo $preciseNumDays;

?>

我刚刚编写了这个简单的脚本来计算自上次日期以来的天数。您可以循环一系列天数并获取自每个日期通过循环后的日期。

答案 1 :(得分:1)

这是在sql server中完成的..请将其转换为mysql语法

 select count(*) from
(select dateval,DATEDIFF(day,dateval,'2012-07-15') day_diff,
ROW_NUMBER() over (order by dateval desc) as rownum from test_11 )a
where a.rownum=a.day_diff