【发布时间】:2026-01-31 23:40:01
【问题描述】:
我只是想查询特定日期范围内的SQLServer 数据库。不知何故,我自己无法弄清楚。这是我所做的:
import pyodbc
import pandas as pd
con = pyodbc.connect("Driver={SQL Server}; Server=link")
tab = pd.read_sql_query("SELECT * FROM OPENQUERY(aaa, 'SELECT * FROM bbb.ccc WHERE number like (''K12345%'')')",con)
tab['DT']
0 2015-09-17 08:51:41
1 2015-09-17 09:14:09
2 2015-09-17 09:15:03
3 2015-09-24 15:20:55
4 2015-09-24 15:23:47
5 2015-10-02 08:49:59
6 2015-10-30 14:08:40
7 2015-10-30 14:13:38
8 2015-11-03 14:30:06
9 2015-11-03 14:30:22
10 2015-11-04 07:14:40
11 2015-11-04 10:43:51
Name: DT, dtype: datetime64[ns]
现在我想我应该能够通过使用以下查询来选择日期在 2015-09-18 和 2015-10-02 之间的记录。不知何故,它因错误而失败
DatabaseError: sql 执行失败:SELECT * FROM OPENQUERY(aaa, 'SELECT * FROM bbb.ccc WHERE DT between ''2015-09-18'' 和 ''2015-10-02''')"。
谁能帮忙解释我做错了什么?
tab2 = pd.read_sql_query("SELECT * FROM OPENQUERY(aaa, 'SELECT * FROM bbb.ccc `WHERE DT between ''2015-09-18'' and ''2015-10-02''')",con)`
【问题讨论】:
-
更多研究在这里发现了类似的问题:link。它只需要转换日期格式。以下代码现在对我有用: tab2 = pd.read_sql_query("SELECT * FROM OPENQUERY(aaa, 'SELECT * FROM bbb.ccc
WHERE DT between to_date(''18-Sep-2015'') and to_date(''02-Oct-2015'')')",con)
标签: python sql-server tsql