Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python sql查询,其中时间戳位于列表中_Python_Sql_Date - Fatal编程技术网

python sql查询,其中时间戳位于列表中

python sql查询,其中时间戳位于列表中,python,sql,date,Python,Sql,Date,我有以下python查询,通过pd.read\u sql\u查询使用。它很好用。我有一个用于查询的日期列表,称为日期 for date i in dates: query = ('SELECT * FROM table WHERE id in'+ str(tuple(ids)) + ' AND date between '+"'"+str(i)+"'"+' and '+"'"+str(i)+"'") 有没有更简单的方法来查询日期,比如ID?我想要这样的东西: query

我有以下python查询,通过pd.read\u sql\u查询使用。它很好用。我有一个用于查询的日期列表,称为日期

for date i in dates:
     query = ('SELECT * FROM table WHERE id in'+ str(tuple(ids)) + ' AND date 
     between '+"'"+str(i)+"'"+' and '+"'"+str(i)+"'")
有没有更简单的方法来查询日期,比如ID?我想要这样的东西:

query = ('SELECT * FROM table WHERE id in'+ str(tuple(ids)) + ' AND date in' + str(tuple(dates)) + "'")
但是,这不起作用,因为日期在python列表和sql数据库中都保存为时间戳

我的sql数据如下所示:

id  date                 variable 
 A  20180101 00:00:00       1
 B  20180101 00:00:00       2
 B  20180501 00:00:00       3
 C  20180201 00:00:00       4
我有一个字符串格式的ID列表:

["B", "C"]
以及日期列表,格式为datetime64[ns]:

[20180101 00:00:00, 20180201 00:00:00]
所需输出为:

id  date                 variable 
 B  20180101 00:00:00       2
 C  20180201 00:00:00       4

你可以做很多事情,但在我看来,这是最具可读性的:

def join(l):
    return ",".join([f"'{x}'" for x in l])
ids_list = join(["B","C"])
dates_list = join(["20180101 00:00:00", "20180201 00:00:00"])

# below works for python 3.6+
print(f"SELECT * FROM table WHERE id in ({ids_list}) and date in ({dates_list})")

# below works for python < 3.6 (you can also use .format())
print("SELECT * FROM table WHERE id in %(ids_list)s and date in %(dates_list)s" % locals())

你能举一个“日期”的例子吗?一般来说,我正在寻找样本输入和输出。我做了更新。希望它更清楚now@FriedrichFranz您能指定您使用的是哪个python版本吗?我会相应地修改我的答案。糟糕的是,我没有在字符串前面带f,因为我不知道它的功能。供将来参考:它与python 3.6.6完美配合。