Функция Datediff DQL не возвращает результаты, как ожидалось

Я пытаюсь запросить сервер documentum, используя запрос DQL. Использование функции DATEDIFF для выбора данных, созданных в текущую дату. Вот запрос

    SELECT title FROM content_table WHERE DATEDIFF(day, "r_creation_date", DATE(TODAY)) < '1' AND content_type IN ('story','news')

Проблема в том, что наряду с сегодняшними данными выбираются и вчерашние. Почему менее 1 условия также извлекает вчерашние данные?

Пробовали использовать DATEDIFF(day, "r_creation_date", DATE(TODAY)) = '0', но это не дало никакого результата. Я понимаю, что даже время входит в картину, но поскольку я использую «день» в качестве шаблона даты, не будет ли он просто вычислять разницу дней?


person NitZRobotKoder    schedule 12.04.2012    source источник
comment
stackoverflow.com/search?q=DATEDIFF+DQL   -  person NitZRobotKoder    schedule 12.04.2012


Ответы (2)


Вы можете попробовать этот запрос:

SELECT title FROM content_table WHERE r_creation_date > DATE(TODAY) AND content_type IN ('story','news')

если вам нужны объекты, созданные сегодня (после 00:00, а не за последние 24 часа)

person Sorin    schedule 17.04.2012

Я должен использовать функцию GETDATE(), чтобы получить текущий день

С уважением.

person Community    schedule 12.04.2012
comment
SELECT title FROM content_table WHERE DATEDIFF(day, r_creation_date, GETDATE()) ‹ '1' AND content_type IN ("история", "новости") Это то, что я использовал. Но его ошибка передачи запроса в методе GETDATE. - person NitZRobotKoder; 12.04.2012
comment
@NitZRobotKoder является r_creation_date столбцом content_table? Если это так, забудьте цитату и используйте content_table.r_creation_date - person ; 12.04.2012