Pyodbc更新游标

时间:2017-12-04 23:02:43

标签: python mysql pyodbc pytz

嗨,我在Python上有一个带有SQL的脚本,我使用fecthall()方法提取我想要的元素,直到那里都很好,因为我想修改两个列(datetime.date和datetime.time)到另一个时区但是我阅读文档,它似乎不容易看起来......

现在我有下一段代码拿到桌子,然后试图将日期转换到另一个时区,我知道......这是一个约会,但如果在西班牙现在是从墨西哥的12/12从2017年12月4日下午5点开始... ...

BTW Im使用 pytz

cursor.execute(cadenaSQL + cadenaSQL_dos)
            su_dict[base+' hagent'] = cursor.fetchall()
            for row in su_dict[base+' hagent']:
                row = list(row)[0]
                print row
                row[0] = hUTC.localize(datetime.datetime.combine(row[0], hoyUTC.time()).astimezone(hMexico))

现在我的代码出现了这个错误:

  

回溯(最近一次呼叫最后一次):文件“cms_V2_30m.py”,第1535行,   在       main()文件“cms_V2_30m.py”,第1444行,在main中       select_hagent()在select_hagent中的文件“cms_V2_30m.py”,第211行       row [0] = hUTC.localize(datetime.datetime.combine(row [0],hoyUTC.time())。astimezone(hMexico))TypeError:'datetime.date'对象   是不可取消的

编辑:

我认为我很接近,问题现在是行对象,因为它是一个元组...所以它是不可改变的,所以我试图找到一种方法来改变这个谷...

新代码:

    for row in su_dict[base + ' hagent']:
        print row[0]
        #list(row)
        #print my_date[0]
        #print datetime.datetime.combine(my_date[0], hoyUTC.time())
        row[0] = hUTC.localize(datetime.datetime.combine(row[0], hoyUTC.time())).astimezone(hMexico)

新错误:

  

回溯(最近一次调用最后一次):文件“cms_V2_30m.py”,第1538行,   在       main()文件“cms_V2_30m.py”,第1447行,在main中       select_hagent()文件“cms_V2_30m.py”,第214行,在select_hagent中       row [0] = hUTC.localize(datetime.datetime.combine(row [0],hoyUTC.time()))。astimezone(hMexico)TypeError:'tuple'对象没有   支持项目分配

2 个答案:

答案 0 :(得分:0)

看起来您正试图将.astimezone()链接到错误的实体。也许试试row[0] = (hUTC.localize(datetime.datetime.combine(row[0], hoyUTC.time())).astimezone(hMexico))

答案 1 :(得分:0)

看起来您的问题是在循环中覆盖row。试试这个吗?

for row in su_dict[base + ' hagent']:
    my_date = list(row)[0]
    print my_date
    row[0] = hUTC.localize(datetime.datetime.combine(my_date, hoyUTC.time()).astimezone(hMexico))