MySQLで時差を補正(時刻の加算更新)したときのメモ
米国山岳部標準時(MST)で記録されてしまったテーブルの日時フィールドを、SQLで日本標準時(JST)に書き替えた。
今後も度々ありそうなので、自分用にメモする。
SQLコマンド
MSTとJSTの時差である16時間を足す、という操作になる。
日時フィールドがDateTime
型の場合
UPDATE t_rawdata SET TargetTime = (TargetTime + INTERVAL 16 HOUR) WHERE ID = xxx;
日時フィールドがUNIX time
の場合
日時フィールドがunsigned int
型やtime_t
型の UNIX time(協定世界時UTCの1970年1月1日からの経過秒数)なら秒換算する。
UPDATE t_rawdata SET TargetTime = (TargetTime + 16 * 60 * 60) WHERE ID = xxx;
UNIX time はfrom_unixtime()
で整形できる。
SELECT
ID,
yyy,
from_unixtime(min(TargetTime), "%Y/%m/%d %H:%i:%S") as start_time,
from_unixtime(max(TargetTime), "%Y/%m/%d %H:%i:%S") as end_time
FROM t_rawdata
WHERE ID = xxx
GROUP BY yyy ORDER BY end_time;
シェルスクリプトからならdate -d '@1234567890'
という感じ。
UNIX timeをExcelで表示するには
= ( UNIX time の列名 + 32400 ) / 86400 + 25569
でExcelのシリアル値に変換できる。
Author And Source
この問題について(MySQLで時差を補正(時刻の加算更新)したときのメモ), 我々は、より多くの情報をここで見つけました https://qiita.com/mindwood/items/5b76352e8dcf40400e92著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .