我尝试使用where语句中的指定日期在Python中过滤我的SQL代码。由于某种原因,它不会根据日期进行过滤,我不确定原因。想要在report_dt上进行过滤> ' 2018年1月1日'但结果输出是给出所有数据
import pandas as pd
startdate='2018-01-01'
test=pd.read_sql("""SELECT top 10 report_dt FROM db.table where report_dt>{} """.format(startdate) , connection)
print(test)
REPORT_DT
0 2014-02-15
1 2014-02-15
2 2014-02-15
答案 0 :(得分:0)
$(window).on('hashchange', function(e) { // this handles links in same page
scrollToAnchor(800);
}).on('load', function(e){
scrollToAnchor(1300); // this handles links to different pages
});
// here we handle animating to already active hash
// as the hashchange will not be triggered
$('a[href$="-st"]').on('click', function(e){
var hash = this.hash; // not supported everywhere
if (hash === window.location.hash){
scrollToAnchor(800);
}
});
function scrollToAnchor(duration) {
var hash = window.location.hash,
cleanhash = hash.replace(/-st$/, '');
if (hash && (hash !== cleanhash)) { // it was indeed ending in -st
$('html, body').animate({
scrollTop: $(cleanhash).offset().top
}, duration);
}
}
是按照以下链接完成的。
sample Number
来源:http://community.teradata.com/t5/Database/Limit-rows/td-p/5238
答案 1 :(得分:0)
最好将参数而不是格式化的字符串传递给查询。试一试:
startdate = '2018-01-01'
test = pd.read_sql("SELECT top 10 report_dt FROM db.table where report_dt > ?", connection, params=(startdate,))
可以找到一个比我能给出的更好的解释here(与Teradata没有具体关系,但这些概念适用)。
答案 2 :(得分:0)
检查此链接,以在基础数据库上为其配置语法语法。 https://www.python.org/dev/peps/pep-0249/#id41-paramstyle部分。 Paramstyle取决于基础数据库配置。
例如,用于Teradata数据库-
**
import teradatasql
teradatasql.paramstyle
result- 'qmark'
or
import importlib
def get_paramstyle(conn):
name = conn.__class__.__module__.split('.')[0]
mod = importlib.import_module(name)
return mod.paramstyle
get_paramstyle(conn=DBconnection) # DBconnection is connection object to the
database you want to connect.
#Pass date parameters to pd.read_sql.
date_param = ['2020-04-17']
SQL_string = " SELECT * FROM tablename WHERE tablename.load_date >= ? "
df = pd.read_sql(sql=SQL_string, con= DBconnection,
index_col='load_date',parse_dates='load_date',params=(date_param))