Python中今天日期和减去3个月之间的条件语句

时间:2018-05-30 15:58:52

标签: python-3.x datetime

我试图在表中插入'NULL'值,具体取决于日期。 如果日期介于今天日期和3个月之后(将于2月)。 然后我想将'NULL'值更新为每个选定的列。

Traceback如下:

Traceback (most recent call last):
  File "C:\projects\docs\script.py", line 41, in <module>
     if dt < date_sql < dr3:
TypeError: '<' not supported between instances of 'datetime.datetime' and 'pyodbc.Row'

长期以来一直在苦苦挣扎,所以非常感谢您的指导,因为我试图找到解决方案。

Python代码是:

import pyodbc
from datetime import date, datetime
import dateutil.relativedelta

conn = pyodbc.connect(
r'DRIVER={SQL Server};'
r'SERVER=server;'
r'DATABASE=db;'
)

dt = datetime.today()
dr3 = dt - dateutil.relativedelta.relativedelta(months=3)
print(dr3)

cursor = conn.cursor()

sent_date = cursor.execute("""SELECT TOP 30 sent_date, id
              FROM Department.Customer""")


def fetch_date():
   for row in sent_date:
       r = row
       print(r)
   return r


date_sql = fetch_date()


if dt < date_sql < dr3:
   try:
       value = None
       cursor.execute("""UPDATE Department.Customer SET name=?, address=?, email=?, 
                      phone=?""", (value, value, value, value))

       cursor.commit()

   except pyodbc.Error as ex:
       print(str(ex))

       cursor.rollback()

cursor.close()

print(dr3)的输出是:

2018-02-28 17:19:50.452290

fetch_date()函数中print(r)的输出是:

(datetime.datetime(2018, 5, 22, 10, 21, 36), 1)
(datetime.datetime(2018, 5, 22, 10, 21, 36), 2)
(datetime.datetime(2018, 5, 22, 10, 21, 36), 3)
...

0 个答案:

没有答案