Ben bir tarih sütununda veri içeren bir tablo var.

0 Cevap php

Şimdi, bir zaman damgası olarak benim sütunlarda php zaman damgası (time ()) kullanıyorum. Ben tamsayı olarak saklamak datetime kullanarak daha verimli olacağını düşündüm çünkü ben kullanıyorum.

Şimdi iki zaman damgaları arasındaki süre seçerek ile ciddi sorunlar yaşıyorum.

Örneğin, dün kayıtları ekledi almak çalışıyorum (php zaman damgası ve TodaysDate bugünün tarihine arasında - php damgası 24 saat)

Bu sql sahte kod böyle görünüyor

SELECT * FROM table 
WHERE date < phptimestamp(todaysdate) AND date > phptimestamp(todaysdate -24h)

Bu bana biraz kayıtlar olsun ama nedense bu aralığı arasındaki kayıtlar chaning devam. Ben arasındaki Aradığım zaman damgaları statik. Eklenen tüm kayıtlar bir currtime damgası var, çünkü bu zaman damgaları arasındaki kayıtlar değişiyor edilmemelidir.

Gerçek Kod

$date = getdate();

$m = time() - (5 * 60);
$h = time() - (($date['minutes'] * 60) + $date['seconds']);
$d = time() - ((60 * 60 * $date['hours']) + ($date['minutes'] * 60) + $date['seconds']);
$y = time() - ((60 * 60 * 24) + ($date['hours'] * 60 * 60) + ($date['minutes'] * 60) + $date['seconds']);

$crawledm = mysql_fetch_assoc(mysql_query("SELECT count(crawled) as count FROM domains WHERE crawled != '' AND crawled > '{$m}'"));
$crawledm = $crawledm['count'];
$crawledh = mysql_fetch_assoc(mysql_query("SELECT count(crawled) as count FROM domains WHERE crawled != '' AND crawled > '{$h}'"));
$crawledh = $crawledh['count'];
$crawledd = mysql_fetch_assoc(mysql_query("SELECT count(crawled) as count FROM domains WHERE crawled != '' AND crawled > '{$d}'"));
$crawledd = $crawledd['count'];
$crawledy = mysql_fetch_assoc(mysql_query("SELECT count(crawled) as count FROM domains WHERE crawled != '' AND crawled > '{$y}' AND crawled < '{$d}'"));
$crawledy = $crawledy['count'];

0 Cevap