MySQL sütun saat eklemek

0 Cevap php

Eğer çocuklar için bir bulmaca biraz. Ben künt Geçici (aşağıda) ile gelebilir ama ben bir daha zarif bir çözüm orada olup olmadığını görmek için hepinize sunmak düşündüm. Ben bir PHP veya MySQL sadece çözüm arıyorum aklınızda tutun.

Tablolar 'mumlar2' dir. Ben bunu bir datestamp sahip bir MySQL TEXT 'zamanı' (örn. 2010.08.13 19:30) var. Bir metin alanı neden sormayın lütfen :). Ben zaman bir mezhebi (örneğin '15m ', '30m', '1 saat ', '4 saat' veya 'günlük') listeleyen ikinci bir metin sütun 'takvim' var. 'Id' birincil anahtardır.

Ben 'Zaman' için 'süre' içinde süreyi eklemek istiyorum.

Yani, örneğin eğer 'zaman' == '2010 .08.13 19:30 've' zaman çizelgesi '== 15m sonra güncelleme olacak' (15 dakika ek fark) '2010 .08.13 19:45 ile 'zaman.

İşte ben düşünüyordum budur:

DB sorgulama / / PHP:

//using UNIX_TIMESTAMP to make the datetime usable by PHP
$sql = "SELECT UNIX_TIMESTAMP(time), timeframe, id FROM candles2";
$result = mysql_query($sql);

//loop through rows
while($row = mysql_fetch_array($result))
{
 //call function to determine the appropriate # of seconds to add
 $newTime = newTime($row['time'],$row['timeframe']);

 //build UPDATE query and update row
 $update_query = "UPDATE candles2 SET 'time'= FROM_UNIXTIME(" . $newTime . ") WHERE id='".$row['id']."'";
 $update_result = mysql_query($update_query);
}

Uygun saniye eklemek / / PHP İşlev

function newTime($oldtime,$timeframe)
{
 switch ($timeframe)
  {
        case "15m":  return($oldtime + 15 * 60);
 case "30m":  return($oldtime + 30 * 60);
        case "1h":  return($oldtime + 60 * 60);
 case "4h":  return($oldtime + 240 * 60);
 case "daily":         return($oldtime + 1440 * 60);
 default:         die("whoops, something broke"); 
   }
}

0 Cevap