Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • T torque-postgresql
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 6
    • Issues 6
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 1
    • Merge requests 1
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Carlos
  • torque-postgresql
  • Wiki
  • Date Time Range

Date Time Range · Changes

Page history
Updated Date Time Range (markdown) authored Aug 18, 2019 by Carlos's avatar Carlos
Hide whitespace changes
Inline Side-by-side
Date-Time-Range.md
View page @ a5da9e86
......@@ -139,26 +139,66 @@ tsrange(LOWER("events"."period") - "events"."interval",UPPER("events"."period")
tsrange(LOWER("events"."period") - "events"."interval",UPPER("events"."period") + "events"."interval") && tsrange(left, right)
```
#### `:real_starting_after` as `.period_real_starting_after(value)`
#### `:real_starting_after` as `.period_real_starting_after(value)` **(ONLY WITH THRESHOLD)**
Filter records that the left value with the threshold is greater than the one provided, which can be either an Arel attribute or a plain value.
```
(LOWER("events"."period") - "events"."interval") > value
```
#### `:real_starting_before` as `.period_real_starting_before(value)`
#### `:real_starting_before` as `.period_real_starting_before(value)` **(ONLY WITH THRESHOLD)**
Filter records that the left value with the threshold is less than the one provided, which can be either an Arel attribute or a plain value.
```
(LOWER("events"."period") - "events"."interval") < value
```
#### `:real_finishing_after` as `.period_real_finishing_after(value)`
#### `:real_finishing_after` as `.period_real_finishing_after(value)` **(ONLY WITH THRESHOLD)**
Filter records that the right value with the threshold is greater than the one provided, which can be either an Arel attribute or a plain value.
```
(UPPER("events"."period") + "events"."interval") > value
```
#### `:real_finishing_before` as `.period_real_finishing_before(value)`
#### `:real_finishing_before` as `.period_real_finishing_before(value)` **(ONLY WITH THRESHOLD)**
Filter records that the right value with the threshold is less than the one provided, which can be either an Arel attribute or a plain value.
```
(UPPER("events"."period") + "events"."interval") < value
```
#### `:containing_date` as `.period_containing_date(value)` **(NON DATERANGE ONLY)**
Checks if the value contains in the range as date. You can pass either an Arel attribute or a plain value.
```
daterange(LOWER("events"."period")::date),UPPER("events"."period")::date) @> value
- With threshold -
daterange((LOWER("events"."period") - "events"."interval")::date),(UPPER("events"."period") + "events"."interval")::date) @> value
```
#### `:not_containing_date` as `.period_not_containing_date(value)` **(NON DATERANGE ONLY)**
The opposite version of the `:containing_date` scope.
```
NOT daterange(LOWER("events"."period")::date),UPPER("events"."period")::date) @> value
- With threshold -
NOT daterange((LOWER("events"."period") - "events"."interval")::date),(UPPER("events"."period") + "events"."interval")::date) @> value
```
#### `:overlapping_date` as `.period_overlapping_date(left, right = nil)` **(NON DATERANGE ONLY)**
Checks if two ranges overlap but comparing only dates. You can pass either another range column as an Arel attribute, a plain range on the left, or the 2 parts of a range.
```
daterange(LOWER("events"."period")::date),UPPER("events"."period")::date) && value
- OR -
daterange(LOWER("events"."period")::date),UPPER("events"."period")::date) && daterange(left, right)
- With threshold -
daterange((LOWER("events"."period") - "events"."interval")::date),(UPPER("events"."period") + "events"."interval")::date) && value
- OR -
daterange((LOWER("events"."period") - "events"."interval")::date),(UPPER("events"."period") + "events"."interval")::date) && daterange(left, right)
```
#### `:not_overlapping_date` as `.period_not_overlapping_date(left, right = nil)` **(NON DATERANGE ONLY)**
The opposite version of the `:overlapping_date` scope.
```
NOT daterange(LOWER("events"."period")::date),UPPER("events"."period")::date) && value
- OR -
NOT daterange(LOWER("events"."period")::date),UPPER("events"."period")::date) && daterange(left, right)
- With threshold -
NOT daterange((LOWER("events"."period") - "events"."interval")::date),(UPPER("events"."period") + "events"."interval")::date) && value
- OR -
NOT daterange((LOWER("events"."period") - "events"."interval")::date),(UPPER("events"."period") + "events"."interval")::date) && daterange(left, right)
```
\ No newline at end of file
Clone repository
  • Wiki
  • Configuring

Core Extensions

  • Range

Data types

  • Enum
  • Enum Set
  • Interval
  • Date/Time Range
  • Box
  • Circle
  • Line
  • Segment

Querying

  • Arel
  • Has Many
  • Belongs to Many
  • Dynamic Attributes
  • Distinct On
  • Auxiliary Statements
  • Inherited Tables