1

以下はクエリです

SELECT
cap_newspaper_page.capnewspaperID,
cap_newspaper_page.capnewspaperPageID,
cap_newspaper.newspaperStationID,
cap_newspaper_page.insertDate
FROM
cap_newspaper_page

以下に結果を示すクエリを作成します。しかし、問題は、毎日の時差の合計が必要なことです。6月27日の合計期間と他の日付も必要です。このクエリを手伝ってください。

ここに画像の説明を入力

I want Time difference from -2012-06-27 18:54:27- To -2012-06-27 19:26:58-
and respectively for other dates! 

大きな画像はここをクリック

4

3 に答える 3

2

date_diff を使用できます。

日付を変数に保存します。では、今と比べてみると、

    $insert_date=$sql['insertDate'];
    $now = date_create("now");
$compDate = date_create(date($insert_date));
$interval = date_diff($compDate,$now);

編集: データを表示するために while ループを実行している場合 - 配列を使用して各レコードの時間を保持するだけで、使用したい 2 つの時間の差に基づいて時間を表示できます。

私の理解が正しければ、次のようになります。

while ($row=mysql_fetch_array($results)) {
$i=$i+1;
$insert_date[$i] = $row['insertDate'];
if ($i!=0){
$interval = date_diff($insert_date[$i],$insert_date[$i-1]);
}
echo "<tr><td>" . $row['insertDate'] . "</td><td>" . $interval . "</td></tr>";
}
于 2012-10-05T12:03:01.240 に答える
0

これが機能するかどうか教えてください:

SELECT
IF(@tmpDate != DATE(q.insertDate), @firstDate := DATE(q.insertDate), @firstDate := @firstDate) as seeIfDateChanged, @tmpDate := q.insertDate, q.*, TIMEDIFF(q.insertDate, @firstDate) AS timeDifference
FROM (
SELECT
*
FROM
yourTable yt
, (SELECT @firstDate:=NULL, @tmpDate:=NULL) r
ORDER BY insertDate
) q
于 2012-10-05T14:31:31.700 に答える
0
SELECT
cap_newspaper_page.capnewspaperID,
cap_newspaper_page.capnewspaperPageID,
cap_newspaper.newspaperStationID,
(select sum(TIME(cap_newspaper_page.insertDate)) from cap_newspaper_page a where DATE(a.insertDate) = DATE(b.insertDate)
group by DATE(a.insertDate))
FROM
cap_newspaper_page b
于 2012-10-05T12:13:11.523 に答える