あなたが開始タイムスタンプとデータベース内のエンドタイムスタンプを持っています。それらの時間間隔に基づいて、これらの値に時間の割合を追加したいとします。言い換えると、2つの違いを知らなくても、時間を追加したり減算したりすることはできません。
まず、時間帯を把握する必要があります。私は、ユニットとしての分を使用するつもりですが、あなたのニーズに最適なものは何でも利用:
SELECT
@new_span := TIMESTAMPDIFF(MINUTE, timestamp1, timestamp2) * 1.25 new_span,
DATE_SUB(timestamp1, INTERVAL (@new_span*60)/2 SECOND) AS new_start,
DATE_ADD(timestamp2, INTERVAL (@new_span*60)/2 SECOND) AS new_end,
TIMESTAMPDIFF(MINUTE, timestamp1, timestamp2) old_span,
timestamp1 AS previous_start,
timestamp2 AS previous_end
FROM table;
だから、このクエリは2倍の違いプラスnew_span
という名前の変数として25%を保存します。 new_start
とフィールドは、元の開始/終了時刻を変更するために変数を使用します(秒に変換され、半分に分割されます)。比較のため、old_spanと元の開始/終了時刻も選択しています。ここで
はサンプル出力です。
new_span new_start new_end old_span previous_start previous_end
1.25 2011-08-11 15:53:22 2011-08-11 15:55:38 1 2011-08-11 15:54:00 2011-08-11 15:55:00
1350.00 2011-08-09 00:45:00 2011-08-10 17:15:00 1080 2011-08-09 12:00:00 2011-08-10 06:00:00
美しいです!私はそこに行っていたが、これは本当に私に多くの時間を節約するのに役立った。ありがとう! – Kevin