簡體   English   中英

如何在 Python 中設置和引用日期范圍,然后應用於查詢?

[英]How to set and reference date range in Python and then apply to a query?

這就是我想在 Spyder 中做的

from datetime import datetime, date
start_date = date(year=2022, month=8, day=9)
end_date = date(year=2022, month=9, day=16)

start_date_str = start_date.strftime("%Y-%m-%d")
end_date_str = end_date.strftime("%Y-%m-%d")

test_query = """
SELECT COUNT(DISTINCT(advertising_id)) FROM dataset
WHERE group_assignment = "TEST" AND day BETWEEN "{start_date}" AND "{end_date}"
"""

我收到錯誤 Could not cast literal "{start_date}" to type DATE at [3:49] 如何在查詢中僅引用 python 中的代碼? 似乎很難找到答案

我需要在 python 中設置一個固定日期,這樣我就不必更改在 python 中使用 bigquery 提取的每個查詢的日期

from datetime import datetime

# Set the start date to January 1st, 2020
start_date = datetime(2020, 1, 1)

# Set the end date to December 31st, 2020
end_date = datetime(2020, 12, 31)

更多信息在這里

正如其中一條評論正確指出的那樣,代碼塊要求f為 f 字符串(格式化字符串文字的縮寫)。

就這樣。

所以代碼看起來像這樣:

from datetime import datetime, date
start_date = date(year=2022, month=8, day=9)
end_date = date(year=2022, month=9, day=16)

start_date_str = start_date.strftime("%Y-%m-%d")
end_date_str = end_date.strftime("%Y-%m-%d")

test_query = f"""
SELECT COUNT(DISTINCT(advertising_id)) FROM dataset
WHERE group_assignment = "TEST" AND day BETWEEN "{start_date}" AND "{end_date}"
"""

print(test_query)

結果是這樣的:

SELECT COUNT(DISTINCT(advertising_id)) FROM dataset
WHERE group_assignment = "TEST" AND day BETWEEN "2022-08-09" AND "2022-09-16"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM