Filter expressions are an advanced way to filter Seven Senders Portal queries, and this page describes how to write them. In the Explore section of Seven Senders Portal you can use them by adding a filter and choosing the matches (advanced) option.
String
Including Special Characters in String Filters
Note these rules for including special characters in string filters:
- To include
%
or_
, prefix with the escape character,^
. For example:^%
and^_
- To include
^
, escape it as^^
. - To include a comma in a string filter, prefix the comma with a backslash character,
\
. For example:Santa Cruz\, CA
. - To include a comma with the matches (advanced) option in a filter, prefix the comma with the escape character,
^
. For example:Santa Cruz^, CA
. - To include a comma in a filter expression in Seven Senders Portal, prefix with the escape character,
^
. For example:field: filtered_count {
type: count
filters: {
field: city
value: "Santa Cruz^, CA"
}
}
Date & Time
Seven Senders Portal date filtering allows for English phrases to be used instead of SQL date functions. For all the examples below assume today is Friday, 2018/05/18 18:30:02. In Seven Senders Portal Analytics, weeks start on Monday.
Basic Structure of Date and Time Filters
For the following examples …
{n}
is an integer.{interval}
is a time increment such as hours, days, weeks, or months.The phrasing you use determines whether the
{interval}
will include partial time periods or only complete time periods. For example, the expression3 days
includes the current, partial day as well as the prior two days. The expression3 days ago for 3 days
includes the previous 3 complete days and excludes the current, partial day. See the Relative Dates section for more information.{time}
is a time of the form YYYY-MM-DD HH:MM:SS or a date of the form YYYY-MM-DD.
These are all the possible combinations of date filters:
this {interval} -
For example:this day
{n} {interval} -
For example:3 days
{n} {interval} ago -
For example:3 days ago
{n} {interval} ago for {n} {interval}
before {n} {interval} ago
before {time}
after {time}
{time} to {time}
The initial time value is inclusive. The latter time value is not. So the expression2018-05-18 12:00:00 to 2018-05-18 14:00:00
will return data with the time “2018-05-18 12:00:00” through “2018-05-18 13:59:59”.{time} for {n} {interval}
today
yesterday
tomorrow
next {week, month, quarter, fiscal quarter, year, fiscal year}
The next keyword is unique in that it requires one of the intervals listed above, and will not work with other intervals.{n} {interval} from now
{n} {interval} from now for {n} {interval}
Date filters can also be combined together:
- To get OR logic: Type multiple conditions into the same filter, separated by commas. For example
today, 7 days ago
means “today or 7 days ago”. - To get AND logic: Type your conditions, one by one, into multiple date or time filters. For example you could put
after 2014-01-01
into a Created Date filter, then putbefore 2 days ago
into a Created Time filter. This would mean “after January 1st, 2014 and before 2 days ago”.
Absolute Dates
Absolute date filters use the specific date values to generate query results. These are useful when creating queries for specific date ranges.
Example | Description |
---|---|
2018/05/29 | sometime on 2018/05/29 |
2018/05/10 for 3 days | from 2018/05/10 00:00:00 through 2018/05/12 23:59:59 |
after 2018/05/10 | after 2018/05/10 23:59:59 |
before 2018/05/10 | before 2018/05/10 00:00:00 |
2018/05 | within the entire month of 2018/05 |
2018/05 for 2 months | within the entire months of 2018/05 and 2018/06 |
2018/05/10 05:00 for 5 hours | from 2018/05/10 05:00:00 through 2018/05/10 09:59:59 |
2018/05/10 for 5 months | from 2018/05/10 00:00:00 through 2018/10/09 23:59:59 |
2018 | entire year of 2018 (2018/01/01 00:00:00 through 2018/12/31 23:59:59) |
FY2018 | entire fiscal year starting in 2018 |
FY2018-Q1 | first quarter of the fiscal year starting in 2018 |
Relative Dates
Relative date filters allow you to create queries with rolling date values relative to the current date. These are useful when creating queries that update each time you run the query.
Seconds
Example | Description |
---|---|
1 second | the current second (2018/05/18 18:30:02) |
60 seconds | 60 seconds ago for 60 seconds (2018/05/18 18:29:02 through 2018/05/18 18:30:01) |
60 seconds ago for 1 second | 60 seconds ago for 1 second (2018/05/18 18:29:02) |
Minutes
Example | Description |
---|---|
1 minute | the current minute (2018/05/18 18:30:00 through 18:30:59) |
60 minutes | 60 minutes ago for 60 minutes (2018/05/18 17:30:00 through 2018/05/18 18:29:59) |
60 minutes ago for 1 minute | 60 minutes ago for 1 minute (2018/05/18 17:30:00 through 2018/05/18 17:30:59) |
Hours
Example | Description |
---|---|
1 hour | the current hour (2018/05/18 18:00 through 2018/05/18 18:59) |
24 hours | the same hour of day that was 24 hours ago for 24 hours (2018/05/17 18:00 through 2018/05/18 17:59) |
24 hours ago for 1 hour | the same hour of day that was 24 hours ago for 1 hour (2018/05/17 18:00 until 2018/05/17 18:59) |
Days
Example | Description |
---|---|
today | the current day (2018/05/18 00:00 through 2018/05/18 23:59) |
2 days | all of yesterday and today (2018/05/17 00:00 through 2018/05/18 23:59) |
1 day ago | just yesterday (2018/05/17 00:00 until 2018/05/17 23:59) |
7 days ago for 7 days | the last complete 7 days (2018/05/11 00:00 until 2018/05/17 23:59) |
today for 7 days | the current day, starting at midnight, for 7 days into the future (2018/05/18 00:00 until 2018/05/24 23:59) |
last 3 days | 2 days ago through the end of the current day (2018/05/16 00:00 until 2018/05/18 23:59) |
7 days from now | 7 days in the future (2018/05/25 00:00 until 2018/05/25 23:59) |
Weeks
Example | Description |
---|---|
1 week | top of the current week going forward (2018/05/14 00:00 through 2018/05/20 23:59) |
this week | top of the current week going forward (2018/05/14 00:00 through 2018/05/20 23:59) |
before this week | anytime until the top of this week (before 2018/05/14 00:00) |
after this week | anytime after the top of this week (2018/05/14 00:00 and later) |
next week | the following Monday going forward 1 week (2018/05/21 00:00 through 2018/05/27 23:59) |
2 weeks | a week ago Monday going forward (2018/05/07 00:00 through 2018/05/20 23:59) |
last week | synonym for “1 week ago” |
1 week ago | a week ago Monday going forward 1 week (2018/05/07 00:00 through 2018/05/13 23:59) |
Months
Example | Description |
---|---|
1 month | the current month (2018/05/01 00:00 through 2018/05/31 23:59) |
this month | synonym for “0 months ago” (2018/05/01 00:00 through 2018/05/31 23:59) |
2 months | the past two months (2018/04/01 00:00 through 2018/05/31 23:59) |
last month | all of 2018/04 |
2 months ago | all of 2018/03 |
before 2 months ago | all time before 2018/03/01 |
next month | all of 2018/06 |
2 months from now | all of 2018/07 |
6 months from now for 3 months | 2018/11 through 2019/01 |
Quarters
Example | Description |
---|---|
1 quarter | the current quarter (2018/04/01 00:00 through 2018/06/30 23:59) |
this quarter | synonym for “0 quarters ago” (2018/04/01 00:00 through 2018/06/30 23:59) |
2 quarters | the past two quarters (2018/01/01 00:00 through 2018/06/30 23:59) |
last quarter | all of Q1 (2018/01/01 00:00 through 2018/03/31 23:59) |
2 quarters ago | all of Q4 of last year (2017/010/01 00:00 through 2017/12/31 23:59) |
before 2 quarters ago | all time before Q4 of last year |
next quarter | all of the following quarter (2018/07/01 00:00 through 2018/09/30 23:59) |
2018-07-01 for 1 quarter | all of Q3 (2018/07/01 00:00 through 2018/09/30 23:59) |
2018-Q4 | all of Q4 (2018/10/01 00:00 through 2018/12/31 23:59) |
Example | Description |
---|---|
1 year | all of the current year (2018/01/01 00:00 through 2018/12/31 23:59) |
this year | all of the current year (2018/01/01 00:00 through 2018/12/31 23:59) |
next year | all of the following year (2019/01/01 00:00 through 2019/12/31 23:59) |
2 years | the past two years (2017/01/01 00:00 through 2018/12/31 23:59) |
last year | all of 2017 |
2 years ago | all of 2016 |
before 2 years ago | all time before 2016/01/01 |
Boolean
Filtering on true or false type values in Seven Senders Portal requires you to know what type of true or false value you’re interacting with.
Example | Description |
---|---|
yes | field evaluates to true |
no | field evaluates to false |
TRUE | field contains true (for fields that contain Boolean database values) |
FALSE | field contains false (for fields that contain Boolean database values) |
Number
Filters on numbers support both natural language expressions (for example 3 to 10
) and relational operators (for example >20
). Seven Senders Portal supports the OR
operator to express multiple filter ranges (for example 3 to 10 OR 30 to 100
). The AND
operator can be used to express numeric ranges with relational operators (for example >=3 AND <=10
) to specify a range.
Interval Notation
Filters on numbers can also use algebraic interval notation to filter numeric fields.
Open Interval
Example | Description |
---|---|
(a, b) | interpreted as a < x < b where the endpoints are NOT included |
While this notation resembles an ordered pair, in this context it refers to the interval upon which you are working.
Closed Interval
Example | Description |
---|---|
[a, b] | interpreted as a <= x <= b where the endpoints are included |
Half-open Interval
Example | Description |
---|---|
(a, b] | interpreted as a < x <= b where a is not included, but b is included |
[a, b) | interpreted as a <= x < b where a is included, but b is not included |
Non-ending Interval
Example | Description |
---|---|
(a, inf) | interpreted as x > a where a is not included and infinity is always expressed as being “open” (not included) |
(-inf, a] | interpreted as x <= b where b is included and again, infinity is always expressed as being “open” (not included) |
Note:
inf
may be omitted and the above may be written as(a,)
or(,a]
Multiple Intervals
The union of multiple intervals may be expressed with a comma. For example:
Example | Description |
---|---|
[0,9],[20,29] | the numbers between 0 and 9 inclusive or 20 to 29 inclusive |
Intervals and Numbers at the Same Time
Example | Description |
---|---|
[0,10],20 | 0 to 10 inclusive or 20 |
Using NOT
Example | Description |
---|---|
NOT 10,[1,5) | all numbers except 10, and except 1 up to but not including 5 |