お世話になります。
テーブルにint型でUNIX時間を表すデータが大量にあり、
その中から、ある一定期間のデータを引っこ抜きたいと思っています。
しかし、中には年月日時分までは同じで秒だけ違うデータが混入しており、
そういったデータに関しては最新1件(時間が新しい方)のデータを抽出したいです。
テーブルの構成は時間がint、列Aはnumeric(6,2)、列Bはnumeric(6,2)です
下記のサンプルテーブルではデータ数は少ないですが、このような形で大量のデータが
テーブルに保存されています。
--test_tbl
|時間|列A|列B|
|1520905810|5.5|6.6|
|1521003000|1.1|2.2|
|1521003010|3.3|4.4|
現状のSQLは
t
1SELECT 2 (CONVERT(datetime,FORMAT(DATEADD(S,[時間],'19700101 09:00:00'),'yyyy/MM/dd hh:mm:ss'))), 3 列A, 4 列B 5 6FROM test_tbl 7WHERE CONVERT(datetime,FORMAT(DATEADD(S,[時間],'19700101 09:00:00'),'yyyy/MM/dd hh:mm:ss')) BETWEEN '2018-03-01 00:00:00' AND '2018-03-20 11:59:00'
実行結果
--test_tbl
|時間|列A|列B|
|2018-03-13 10:50:10|5.5|6.6|
|2018-03-14 13:50:00|1.1|2.2|
|2018-03-14 13:50:10|3.3|4.4|
こんな感じで、UNIX時間をdatetime型に変換して一定の期間に絞り込むところまでは
できました。ただ、依然として秒のみが違うデータも混入しているので、そこをどうすればいいかがわからない状態です。
最終的にはテーブルが下記のような形になってほしいです。
--test_tbl
|時間|列A|列B|
|2018-03-13 10:50:10|5.5|6.6|
|2018-03-14 13:50:10|3.3|4.4|
拙い説明ではありますが、皆様の知恵をお貸しください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/03/14 08:17 編集
2018/03/14 08:20