Преобразование даты в datetime.datetime в Python?Или наоборот? - PullRequest
0 голосов
/ 22 октября 2018

ПРЕДПОСЫЛКИ:

Я пытался сравнить две даты в базе данных, чтобы увидеть, когда записи были в последний раз изменены и должны ли они быть обновлены снова.Я относительно новичок в использовании как Python 2.7, так и Cassandra 3.0, и я не нашел других ответов о том, как это сделать.

ПРОБЛЕМА :

if(last_modified <= db_last_modified):
TypeError: can't compare datetime.datetime to Date

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ

#I'm getting the last_modified record in the database

last_modified = self.object.record.last_modified

db_last_modified = record_helper.get_last_modified_record()[0]['last_modified']

    print(type(last_modified)) # <type 'datetime.datetime'>
    print(type(db_last_modified)) # <class 'cassandra.util.Date'>        

    if(last_modified <= db_last_modified):
        print("Already processed newer or equivalent version.")
        logging.info("Already processed a newer version of the metadata. Please check your files and try again.")
        return

1 Ответ

0 голосов
/ 28 ноября 2018

класс 'cassandra.util.Date' имеет функцию date ().Он преобразуется в объект datetime.date.

, поэтому тип (db_last_modified.date ()) будет <class 'datetime.date'>

, вам также потребуется преобразовать datetime.datetime в datetime.date.Вы можете сделать это, используя date ().

, например: datetime.datetime (2018,11,20) .date () -> datetime.date (2018, 11, 20)

Теперь вы можете сравнить их.

, поэтому измените строку на if(last_modified.date() <= db_last_modified.date()):

...