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 Sep 02, 2019 by Carlos's avatar Carlos
Hide whitespace changes
Inline Side-by-side
Date-Time-Range.md
View page @ c4b9f9e2
......@@ -37,6 +37,9 @@ period_for :period, threshold: 15.minutes
# This will force the creation of all the methods, which would raise an exception on conflicting. The default is false
period_for :period, force: true
# If you don't want the methods to have the field name, then you can use this option
period_for: :period, prefixed: false
# You can also rename any method that will be created
period_for :period, methods: { current: :ongoing, current?: :ongoing? }
```
......@@ -167,8 +170,6 @@ Filter records that the right value with the threshold is less than the one prov
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)**
......@@ -185,10 +186,6 @@ Checks if two ranges overlap but comparing only dates. You can pass either anoth
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)**
......@@ -197,10 +194,20 @@ 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
```
#### `:real_containing_date` as `.period_real_containing_date(value)` **(NON DATERANGE ONLY)**
Checks if the value contains in the range as date and considering the threshold. You can pass either an Arel attribute or a plain value.
```
daterange((LOWER("events"."period") - "events"."interval")::date),(UPPER("events"."period") + "events"."interval")::date) @> value
```
#### `:real_overlapping_date` as `.period_real_overlapping_date(left, right = nil)` **(NON DATERANGE ONLY)**
Checks if two ranges overlap but comparing only dates and considering the threshold. 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") - "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)
daterange((LOWER("events"."period") - "events"."interval")::date),(UPPER("events"."period") + "events"."interval")::date) && daterange(left, right)
```
### Instance methods
......
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