INTのタイムスタンプに測定時刻の列があり、1時間間隔のグループデータが必要です。MySQL関数FROM_UNIXTIME()をすでに発見しましたが、この関数の結果から時間を抽出するためのMySQLの内部機器はありますか?
26411 次
5 に答える
12
私はあなたが意味すると思いますFROM_UNIXTIME
GROUP BY
DATE_FORMAT(FROM_UNIXTIME(time_column), '%Y %m %d %H'))
于 2013-03-11T00:18:11.907 に答える
6
SELECT *
FROM table
GROUP BY DATE_FORMAT(FROM_UNIXTIME(time_col_name), '%H')
MySQLの日付ドキュメントを確認してください。
編集:
代わりに使用DATE_FORMAT
して、返される時間の形式を確実に判別してください。DATE_FORMATのドキュメントを参照してください。注:形式%Hは、時間の値を形式00、01、...23で返します。
于 2013-03-11T00:17:24.263 に答える
1
何かのようなもの:
SELECT HOUR(FROM_UNIXTIME(unixCol))
FROM tbl
GROUP BY HOUR(FROM_UNIXTIME(unixCol))
HOUR
UNIXタイムスタンプが日付に変換されてから1時間を抽出します。
于 2013-03-11T00:17:25.633 に答える
0
そのDBデータを日付として変数に入れてからエコーしてみてください。
$timestamp = strtotime($db_data);
echo date("m-d-Y", $timestamp);
于 2013-03-11T00:21:33.120 に答える
0
これは最初の質問から数年後のことですが、より大きなデータセットを扱っている場合は、クエリセットのすべての行に対して2つの関数を呼び出すため、実行に時間がかかる場合があります。
少しのモジュラー演算を使用して、時間を数秒短縮することができました
GROUP BY FLOOR(time_col/(60*60) MOD 24)
お役に立てれば :)
于 2016-05-09T01:23:39.507 に答える