|
15.03.2017, 20:26 | #1 |
Участник
|
DateTime1>DateTime2 in where
Всем привет!
Подскажите можно ли построит запрос с where в Dax12, который отберет записи у которых даты отличаются не более чем на определенную величину? whele select t1 where t1.datetime1>t1.datetime2+2 hours |
|
16.03.2017, 06:02 | #2 |
Участник
|
Используйте DateTimeUtil::addHours()
X++: while select t1 where t1.datetime1 > DateTimeUtil::addHours(t1.datetime2, 2);
__________________
// no comments |
|
16.03.2017, 09:27 | #3 |
Участник
|
Вы предлагаете функцию уровня приложения(AOS) применить в условии where, которое выполняется на уровне базы данных? посмотрите внимательнее t1.datetime2 - это не внешняя по отношению к запросу переменная, а часть самих данных над которыми происходит вычисление условия.
|
|
16.03.2017, 11:39 | #4 |
Участник
|
Да, действительно не работает. Спасибо. Видимо, вычисляемые поля - единственно верное решение.
__________________
// no comments |
|
16.03.2017, 12:43 | #5 |
Участник
|
Если не принципиален момент как делать запрос через while или через Query, то можно в query использовать расширенное условие, типа такого :
((%1.modifiedDateTime - %1.createdDateTime) > (2 / 24)) где %1 - это имя датасорса, вообщем поищите примеры как реализуются расширенные условия. А 2 / 24 это эквивалент двух часов в данном случае, вникать особо не было времени, объяснение можно посмотреть вот тут - как посчитать в sql раздницу во времени в колонке DateTime Т.е. SQL поддерживает операцию "-" для поля типа datetime, результат число, а дальше его можно интерпретировать вот так Цитата:
Берёшь целую часть числа, которое у тебя получилось - это кол-во дней
Берёшь то, что после запятой и умножаешь на 24 - это, кол-во часов Берёшь то, что после запятой и умножаешь на 24*60 - это , кол-во минут Принцип ясен?
__________________
Sergey Nefedov Последний раз редактировалось SRF; 16.03.2017 в 12:48. |
|
|
За это сообщение автора поблагодарили: S.Kuskov (2), sukhanchik (2), Ace of Database (3). |
16.03.2017, 09:31 | #6 |
Участник
|
Не работает, дает ошибку
Недопустимое использование выражения WHERE. |
|
16.03.2017, 09:34 | #7 |
Участник
|
Попробуйте посмотреть в сторону Computed Column
http://stackoverflow.com/questions/2...omputed-column |
|
|
За это сообщение автора поблагодарили: dech (1). |
16.03.2017, 22:17 | #8 |
Участник
|
Цитата:
Сообщение от S.Kuskov
Попробуйте посмотреть в сторону Computed Column
http://stackoverflow.com/questions/2...omputed-column
__________________
Ален ноби, ностра алис. Что означает - если один человек построил, другой завсегда разобрать может. |
|
|
|