このような準備ステートメントを書きましたが、正常に動作しています。
BEGIN
SET @tempaccountID :=CONCAT('\'',accountID1,'\'');
SET @tempdeviceID := CONCAT('\'',deviceID1,'\'');
SET @query :=CONCAT('select accountID,
deviceID,
FROM_UNIXTIME(timestamp) as timestamp,
statusCode,
latitude,
longitude,
speedKPH,
heading,
address,
odometerKM,
Charging
from ',(SELECT eventtableName FROM migration_run_time WHERE accountID=accountId1 AND deviceID=deviceID1),
' where accountID=',@tempaccountID,
' and deviceID=',@tempdeviceID,
' and latitude!=0.0 and longitude!=0.0 and speedKPH<120 and timestamp= (select max(timestamp) from ', (SELECT eventtableName FROM migration_run_time WHERE accountID=accountId1 AND deviceID=deviceID1) ,
' where accountID=',@tempaccountID,
' and deviceID=',@tempdeviceID,
' and latitude!=0.0 and longitude!=0.0 and speedKPH<120);');
PREPARE stmt FROM @query;
EXECUTE stmt;
今、大きな問題に直面しています
ステートメントで Convert_tz を使用して、このような必要な時間形式で時間を取得したい
convert_tz(FROM_UNIXTIME(timestamp),device.timeZone,device.requiredTimeZone) as timestamp
// デバイスは上記のステートメントの別のテーブルです
上記の方法でこれを記述する場合、列名の先頭にテーブル名を付ける必要がありますが、イベント テーブル自体は実行時に accountID と deviceID に基づいて計算されます。
ITはどうすればいいの...
PS 私は mysql がかなり苦手です。私は >net/jQuery 開発者であり、mysql についてのアイデアがありません。助けてください.. :(