我正在尝试从数据库中搜索两个日期范围之间的记录。这是我的代码视图:
def profile(request):
if request.method == 'POST':
fromdate = request.POST.get('from')
todate = request.POST.get('to')
cursordate = connection.cursor()
cursordate.execute('SELECT * FROM Lesson WHERE StartDateTime between "'+fromdate+'" and "'+todate+'"'
)
data = dictfetchall(cursordate)
return render(request,'personal.html',{'data':data})
else:
cursordate = connection.cursor()
cursordate.execute('SELECT * FROM Lesson')
data = dictfetchall(cursordate)
return render(request,'personal.html',{'data':data})
html:
{% for lesson in data1 %}
<div class="card mb-3 mt-1 shadow-sm">
<div class="card-body">
<p class="card-text">
<div class="row">
<div class="col-2">
<div>{{ lesson.StartDateTime}} - {{ lesson.EndDateTime}}</div>
</div>
<div class="col-4">
<div>{{ lesson.Name }}</div>
</div>
</div>
<div class="mt-5"></div>
</p>
</div>
</div>
{% endfor %}
但我收到以下错误:
Invalid column name "2021-03-02". (207) (SQLExecDirectW); [42S22] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Invalid column name "2021-03-03". (207)')
它与“StartDateTime”的类型是 DateTime 而不是 Date 的事实有关吗?但是,我尝试在 sql 查询中将日期与时间硬编码,但它仍然失败。(我知道它可以在 ORM Django 的帮助下完成,但我需要使用原始 SQL)