如何使用python在SQL select语句中插入今天的日期?

时间:2019-09-16 06:08:54

标签: python sql pandas postgresql

我正在尝试将今天的变量发送到SQL中,但是它不起作用。

import datetime from date

today = date.today()


stmt = "select agent_email from customer_interaction_fact where to_date(DT) >= + today + ORDER BY CONVERSATION_CREATED_TIME DESC"

3 个答案:

答案 0 :(得分:3)

您不必使用Python计算今天的日期。只需使用PostgreSQL函数CURRENT_DATE

stmt = "SELECT ... WHERE TO_DATE(DT) >= CURRENT_DATE ..."

答案 1 :(得分:0)

尝试如下

import datetime from date

today = date.today()


stmt = "select agent_email,aht_in_secs,queueid,EFFORTSCORE from facts.public.customer_interaction_fact where agent_email <> 'Bot' and aht_in_secs is not NULL and to_date(DT) >=" + today + "ORDER BY CONVERSATION_CREATED_TIME DESC"

答案 2 :(得分:0)

您正在使用哪个数据库引擎?您需要将python datetime对象转换为数据库可接受的格式的字符串。

# In case YYYY-MM-DD
today_str = str(today)

stmt = f"""select agent_email 
           from customer_interaction_fact 
           where to_date(DT) >= datetime({today}, "YYYY-MM-DD") 
           order by CONVERSATION_CREATED_TIME DESC"""

另一种解决方案,假设客户端(您的程序)与数据库引擎处于同一时区,则可以使用数据库引擎datetime.now函数。在SQLite中,例如datetime('now')