Исключение записей, которые старше вчерашней даты

У меня есть поле даты CYYMMDD в числовом формате. Я хотел избавиться от века, поэтому я сделал Поле Формулы:

Если {поле} ‹> 0, то {поле}-1000000

Это дает мне дату в числовом формате ГГММДД, пример 150922.

Теперь я хочу отфильтровать поле, чтобы отображались только вчерашние записи.

Как мне это сделать?


person Bill Reilly    schedule 22.09.2015    source источник
comment
Я не думаю, что вычитание века поможет, вам нужно будет использовать функцию DATEADD, чтобы вычесть один день, а затем вы можете сравнить его со значением века.   -  person Beth    schedule 22.09.2015


Ответы (2)


Создайте две формулы.

1-й, чтобы преобразовать число (ГГММДД) в формат даты.

2-й, чтобы узнать вчерашнюю дату ..

@NumberToDate

CDate(ToNumber(Mid(ToText({NumberDate}),1,2)),ToNumber(Mid(ToText({NumberDate}),3,2)),ToNumber(Mid(ToText({NumberDate}),5,2 )))

@YesterdayDate

текущая дата -1

затем примените фильтр по дате, где @NumberToDate >= @YesterdayDate

person Ankur Alankar Biswal    schedule 23.09.2015

чтобы избежать проблем с производительностью, всегда пытайтесь преобразовать поле даты в тип данных, который есть в вашей базе данных. Итак, вы напишете это в своей формуле выбора записи

(yourdatefield) = tonumber((yourcentury)&totext(currentdate-1,'yyMMdd'))

который собирается преобразовать вчерашнюю дату в формат ГГММДД и добавить к нему век, а затем преобразовать его в тип данных, зарегистрированный в вашей базе данных.

надеюсь, это поможет!

person cojimarmiami    schedule 23.09.2015