今日はSQLの検証をする。以前調べた過去の記事でまとめた内容が正しいか、PostgreSQLでも使用できるかを確かめる。
how-to-make-stock-trading-system.dogwood008.com
検証の結果、そのまま参考にできそうなことがわかった。
例1
指定した日時が存在するとき。
/* 入力 */ SELECT * FROM stock_7974 WHERE datetime <= '2021-09-09 14:59:56' ORDER BY datetime DESC LIMIT 1;
# 出力 datetime | volume | price ---------------------+--------+------- 2021-09-09 14:59:56 | 400 | xx370 (1 row)
例2
指定した日時が存在せず、1秒前に存在するとき。
SELECT * FROM stock_7974 WHERE datetime <= '2021-09-09 14:59:49' ORDER BY datetime DESC LIMIT 1;
datetime | volume | price ---------------------+--------+------- 2021-09-09 14:59:48 | 100 | xx390
例3
指定した日時が存在せず、4秒前に存在するとき。
SELECT * FROM stock_7974 WHERE datetime <= '2021-09-09 14:28:14' ORDER BY datetime DESC LIMIT 1;
datetime | volume | price ---------------------+--------+------- 2021-09-09 14:28:10 | 1600 | xx380