-1

我有以下代码始终从数据库中获取日期,然后它将检查当前时间是否等于数据库中的时间。它没有说拍卖开始的问题!就像它应该的那样。

所以我猜这个 if 语句是不正确的。有人可以帮助我朝着正确的方向前进吗?谢谢!

def startAuctionServer():
    global cursor

    sql = ("SELECT Auction_StartDate closestDate FROM Auctions "
           "WHERE DATE(Auction_StartDate) > '2012-10-09' "
           "ORDER BY Auction_StartDate ASC LIMIT 1")

    cursor.execute(sql)
    results = cursor.fetchall()
    for row in results:
        auction_startdate = row[0]
        print "AUCTION: %s" % auction_startdate

        now = datetime.datetime.now()
        print now.strftime("%Y-%m-%d %H:%M:%S")
        if auction_startdate == now.strftime("%Y-%m-%d %H:%M:%S"):
            # let the auctions begin
            print "Auction begins!"
            reactor.stop()
            return
        else:
            reactor.callLater(0.05, startAuctionServer)


print "Auction Server Started"
reactor.callLater(0, startAuctionServer)
reactor.run()

解决了

我想出了我需要做什么。我使用 str 来制作值字符串,然后将它们拆分为空格。

我将 if 更改为:

if str(now.strftime("%Y-%m-%d %H:%M:%S")).split() == str(auction_startdate).split()

现在我有了我正在做的事情的基础,现在我可以开始我的项目了。

谢谢你们!

4

1 回答 1

1

也许您可以尝试一个不太具体的比较,例如,在日期:

import datetime

auction_startdate = datetime.datetime.strptime('2012-10-11 12:12:12', '%Y-%m-%d %H:%M:%S')

if auction_startdate.date() == datetime.date.today():
    # let the auctions begin
    .... etc ....

或者

if datetime.datetime.now() >= auction_startdate:
于 2012-10-11T06:41:01.950 回答