GQL SELECT по дате - PullRequest
       1

GQL SELECT по дате

3 голосов
/ 14 марта 2012

У меня есть эта модель:

class Entry(db.Model):
    title = db.StringProperty()
    url = db.URLProperty()
    date = db.DateTimeProperty(auto_now=True)
    image = db.URLProperty()
    weight = db.IntegerProperty()
    category = db.StringProperty()
    desc = db.TextProperty()

У меня много записей каждый день, как ВЫБРАТЬ только сегодняшние записи, используя GGL? так как запрос как этот не возвращает никаких результатов (но я знаю, что есть результаты):

SELECT * FROM Entry WHERE category = 'news' and date = '2012-03-12' ORDER BY weight DESC

Ответы [ 2 ]

8 голосов
/ 14 марта 2012

Он сохраняется не как строка, а как объект типа datetime.

Правая часть сравнения может быть одной из следующих:

  • литерал datetime, date или time с числовыми значениями или строковое представление в следующих формах:

    DATETIME (год, месяц, день, час, минута, секунда)
    DATETIME ('ГГГГ-ММ-ДД ЧЧ: ММ: СС')
    ДАТА (год, месяц, день)
    ДАТА ( 'YYYY-MM-DD')
    ВРЕМЯ (час, минута, секунда)
    TIME ( 'HH: MM: SS')

http://code.google.com/appengine/docs/python/datastore/gqlreference.html

Так что в вашем примере используйте любой из них.

date = DATE('2012-03-12')
date = DATE(2012,03,12)

Для даты и времени по умолчанию установлено время 00:00, поэтому сравнение на равенство не удастся, поэтому вы должны использовать> для сравнения

SELECT * FROM Entry WHERE date > DATETIME(yyyy,mm,dd)
0 голосов
/ 16 октября 2018

Если кому-то нужно искать дату и время, у меня это работает на GQL:

select * from tableName where recordDate >= DATETIME('2018-10-07T00:56:36z')

Надеюсь, это кому-нибудь поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...