Trait diesel::pg::expression::extensions::IntervalDsl[][src]

pub trait IntervalDsl: Sized + From<i32> + Mul<Self, Output = Self> {
    fn microseconds(self) -> PgInterval;
fn days(self) -> PgInterval;
fn months(self) -> PgInterval; 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 { ... } }
[]

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

connection.execute("INSERT INTO users (name, created_at) VALUES
    ('Sean', NOW()), ('Tess', NOW() - '5 minutes'::interval),
    ('Jim', NOW() - '10 minutes'::interval)").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]);
connection.execute("INSERT INTO users (name, created_at) VALUES
    ('Sean', NOW()), ('Tess', NOW() - '5 days'::interval),
    ('Jim', NOW() - '10 days'::interval)").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

[]

Returns a PgInterval representing self as microseconds

[]

Returns a PgInterval representing self in days

[]

Returns a PgInterval representing self in months

Provided Methods

[]

Returns a PgInterval representing self as milliseconds

[]

Returns a PgInterval representing self as seconds

[]

Returns a PgInterval representing self as minutes

[]

Returns a PgInterval representing self as hours

[]

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.

[]

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());

[]

Identical to microseconds

[]

Identical to milliseconds

[]

Identical to seconds

[]

Identical to minutes

[]

Identical to hours

[]

Identical to days

[]

Identical to weeks

[]

Identical to months

[]

Identical to years

Implementations on Foreign Types

impl IntervalDsl for i32
[src]

[]

impl IntervalDsl for i64
[src]

[]

impl IntervalDsl for f64
[src]

[]

Implementors