Chinaunix

标题: 请教can't compare datetime.date to str的错误提示 [打印本页]

作者: syncon    时间: 2005-07-22 23:53
标题: 请教can't compare datetime.date to str的错误提示
我的Python是2.4.1版本的

test.py文件内容如下:
#! /usr/local/python/bin/python
# -*- coding: gb2312 -*-

import MySQLdb
import datetime

last = (datetime.date.today() - datetime.timedelta(10)).strftime("%Y-%m-%d"
now = (datetime.date.today()).strftime("%Y-%m-%d"

conn = MySQLdb.connect (host = "localhost",
                        user = "root",
                        passwd = "888888",
                        db = "test"
cursor = conn.cursor ()
cursor.execute ("SELECT login_name,last_time FROM customer"
while (1):
    row = cursor.fetchone ()
    if row == None:
        break
    else:
        if row[1] <= now:
            print row[1]
        elif row[1] >; now:
            print now

cursor.close ()
conn.close ()

其中last_date的格式为2005-07-20
执行结果如下:
# /usr/local/python/bin/python /usr/local/script/radius/test.py
Traceback (most recent call last):
  File "/usr/local/script/radius/test.py", line 21, in ?
    if row[1] <= now:
TypeError: can't compare datetime.date to str

不知为何两个变量不能比较??在Python2.2.3里就没有这个问题,不过Python2.2.3又没有datetime模块!请指教

再请问一下,利用time模块怎样获取10天前的日期?要求格式为2005-07-20
作者: sakulagi    时间: 2005-07-23 08:58
标题: 请教can't compare datetime.date to str的错误提示
不知道你数据库的结构是什么样子的。如果没有猜错,
  1. if row[1] <= now:
复制代码
里的row[1]得到的是个date对象,而不是str,所以不能和now比较。其实你可以试试这样定义now:

  1. now = datetime.date.today()
复制代码

作者: syncon    时间: 2005-07-23 18:29
标题: 请教can't compare datetime.date to str的错误提示
对,row[1]得到的是date对象,而now是str,所以我用下面的方法解决了:
future = (datetime.date.today() + datetime.timedelta(10)).strftime("%Y-%m-%d"
now = (datetime.date.today()).strftime("%Y-%m-%d"
userdate = row[1].strftime("%Y-%m-%d"
这样三个就能比较了!谢谢




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2