Trait diesel::pg::expression::extensions::IntervalDsl    
source · pub trait IntervalDsl: Sized + From<i32> + Mul<Self, Output = Self> {
Show 18 methods
    // Required methods
    fn microseconds(self) -> PgInterval;
    fn days(self) -> PgInterval;
    fn months(self) -> PgInterval;
    // Provided methods
    fn milliseconds(self) -> PgInterval { ... }
    fn seconds(self) -> PgInterval { ... }
    fn minutes(self) -> PgInterval { ... }
    fn hours(self) -> PgInterval { ... }
    fn weeks(self) -> PgInterval { ... }
    fn years(self) -> PgInterval { ... }
    fn microsecond(self) -> PgInterval { ... }
    fn millisecond(self) -> PgInterval { ... }
    fn second(self) -> PgInterval { ... }
    fn minute(self) -> PgInterval { ... }
    fn hour(self) -> PgInterval { ... }
    fn day(self) -> PgInterval { ... }
    fn week(self) -> PgInterval { ... }
    fn month(self) -> PgInterval { ... }
    fn year(self) -> PgInterval { ... }
}postgres_backend only.Expand description
A DSL added to integers and f64 to construct PostgreSQL intervals.
The behavior of these methods when called on NAN or Infinity, or when
overflow occurs is unspecified.
Examples
diesel::sql_query("INSERT INTO users (name, created_at) VALUES
    ('Sean', NOW()), ('Tess', NOW() - '5 minutes'::interval),
    ('Jim', NOW() - '10 minutes'::interval)")
    .execute(connection)
    .unwrap();
let mut data: Vec<String> = users
    .select(name)
    .filter(created_at.gt(now - 7.minutes()))
    .load(connection).unwrap();
assert_eq!(2, data.len());
assert_eq!("Sean".to_string(), data[0]);
assert_eq!("Tess".to_string(), data[1]);diesel::sql_query("INSERT INTO users (name, created_at) VALUES
    ('Sean', NOW()), ('Tess', NOW() - '5 days'::interval),
    ('Jim', NOW() - '10 days'::interval)")
    .execute(connection)
    .unwrap();
let mut data: Vec<String> = users
    .select(name)
    .filter(created_at.gt(now - 7.days()))
    .load(connection).unwrap();
assert_eq!(2, data.len());
assert_eq!("Sean".to_string(), data[0]);
assert_eq!("Tess".to_string(), data[1]);Required Methods§
sourcefn microseconds(self) -> PgInterval
 
fn microseconds(self) -> PgInterval
Returns a PgInterval representing self as microseconds
sourcefn days(self) -> PgInterval
 
fn days(self) -> PgInterval
Returns a PgInterval representing self in days
sourcefn months(self) -> PgInterval
 
fn months(self) -> PgInterval
Returns a PgInterval representing self in months
Provided Methods§
sourcefn milliseconds(self) -> PgInterval
 
fn milliseconds(self) -> PgInterval
Returns a PgInterval representing self as milliseconds
sourcefn seconds(self) -> PgInterval
 
fn seconds(self) -> PgInterval
Returns a PgInterval representing self as seconds
sourcefn minutes(self) -> PgInterval
 
fn minutes(self) -> PgInterval
Returns a PgInterval representing self as minutes
sourcefn hours(self) -> PgInterval
 
fn hours(self) -> PgInterval
Returns a PgInterval representing self as hours
sourcefn weeks(self) -> PgInterval
 
fn weeks(self) -> PgInterval
Returns a PgInterval representing self in weeks
Note: When called on a high precision float, the returned interval may be 1 microsecond different than the equivalent string passed to PostgreSQL.
sourcefn years(self) -> PgInterval
 
fn years(self) -> PgInterval
Returns a PgInterval representing self in weeks
Note: When called on a float, this method will mimic the behavior of PostgreSQL’s interval parsing, and will ignore units smaller than months.
assert_eq!(1.08.years(), 1.year());
assert_eq!(1.09.years(), 1.year() + 1.month());sourcefn microsecond(self) -> PgInterval
 
fn microsecond(self) -> PgInterval
Identical to microseconds
sourcefn millisecond(self) -> PgInterval
 
fn millisecond(self) -> PgInterval
Identical to milliseconds
sourcefn second(self) -> PgInterval
 
fn second(self) -> PgInterval
Identical to seconds
sourcefn minute(self) -> PgInterval
 
fn minute(self) -> PgInterval
Identical to minutes
sourcefn hour(self) -> PgInterval
 
fn hour(self) -> PgInterval
Identical to hours
sourcefn day(self) -> PgInterval
 
fn day(self) -> PgInterval
Identical to days
sourcefn week(self) -> PgInterval
 
fn week(self) -> PgInterval
Identical to weeks
sourcefn month(self) -> PgInterval
 
fn month(self) -> PgInterval
Identical to months
sourcefn year(self) -> PgInterval
 
fn year(self) -> PgInterval
Identical to years