pub trait IntervalDsl: Sized + From<i32> + Mul<Self, Output = Self> {
Show 18 methods 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 { ... }
}
Available on crate feature 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

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

Available on crate feature postgres_backend only.
Available on crate feature postgres_backend only.
Available on crate feature postgres_backend only.
Available on crate feature postgres_backend only.
Available on crate feature postgres_backend only.
Available on crate feature postgres_backend only.
Available on crate feature postgres_backend only.
Available on crate feature postgres_backend only.
Available on crate feature postgres_backend only.
Available on crate feature postgres_backend only.
Available on crate feature postgres_backend only.
Available on crate feature postgres_backend only.
Available on crate feature postgres_backend only.
Available on crate feature postgres_backend only.

Implementors