爲你們一個難題的位。我可以提出鈍的解決方法(下面),但我認爲它會向大家展示是否有更優雅的解決方案。請記住,我正在尋找一個僅限PHP或MySql的解決方案。MySQL添加時間到列
表是'蠟燭2'。我有一個帶有日期戳的MySQL TEXT列'time'(例如2010.08.13 19:30)。請不要問爲什麼它是一個文本字段:)。我有第二個TEXT列「時間範圍」列出了時間的面額(例如'15m','30m','1h','4h'或'每日')。 'id'是主鍵。
我想將「時間範圍」中的時間量添加到「時間」。例如,如果'time'=='2010.08.13 19:30'和'timeframe'== 15m,那麼它會用'2010.08.13 19:45'更新'時間'(注意增加了15個分鐘)。
這是我的想法是:
// PHP查詢DB:
//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);
}
// PHP函數添加適當秒
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");
}
}