diff --git a/src/screener/t_sunnyband.py b/src/screener/t_sunnyband.py index af44d63..ddb70f0 100644 --- a/src/screener/t_sunnyband.py +++ b/src/screener/t_sunnyband.py @@ -25,7 +25,7 @@ def get_stock_data(ticker: str, start_date: datetime, end_date: datetime, interv # Unified query format query = f""" SELECT - toDate(window_start) as date, + toDateTime(window_start/1000000000) as date, open, high, low, @@ -34,9 +34,11 @@ def get_stock_data(ticker: str, start_date: datetime, end_date: datetime, interv FROM stock_db.stock_prices WHERE ticker = '{ticker}' AND window_start BETWEEN - toUnixTimestamp('{start_date.date()}') * 1000000000 AND - toUnixTimestamp('{end_date.date()}') * 1000000000 - ORDER BY window_start ASC + {int(start_date.timestamp() * 1e9)} AND + {int(end_date.timestamp() * 1e9)} + AND toYear(toDateTime(window_start/1000000000)) <= toYear(now()) + AND toYear(toDateTime(window_start/1000000000)) >= (toYear(now()) - 1) + ORDER BY date ASC """ result = client.query(query) @@ -47,7 +49,7 @@ def get_stock_data(ticker: str, start_date: datetime, end_date: datetime, interv print(f"⚠️ No daily data for {ticker}, resampling from intraday data") intraday_query = f""" SELECT - toStartOfDay(window_start) AS date, + toDateTime(window_start/1000000000) as date, first_value(open) AS open, max(high) AS high, min(low) AS low, @@ -56,8 +58,10 @@ def get_stock_data(ticker: str, start_date: datetime, end_date: datetime, interv FROM stock_db.stock_prices WHERE ticker = '{ticker}' AND window_start BETWEEN - toUnixTimestamp('{start_date.date()}') * 1000000000 AND - toUnixTimestamp('{end_date.date()}') * 1000000000 + {int(start_date.timestamp() * 1e9)} AND + {int(end_date.timestamp() * 1e9)} + AND toYear(toDateTime(window_start/1000000000)) <= toYear(now()) + AND toYear(toDateTime(window_start/1000000000)) >= (toYear(now()) - 1) GROUP BY date ORDER BY date ASC """