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 { ... }
}
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§

source

fn microseconds(self) -> PgInterval

Returns a PgInterval representing self as microseconds

source

fn days(self) -> PgInterval

Returns a PgInterval representing self in days

source

fn months(self) -> PgInterval

Returns a PgInterval representing self in months

Provided Methods§

source

fn milliseconds(self) -> PgInterval

Returns a PgInterval representing self as milliseconds

source

fn seconds(self) -> PgInterval

Returns a PgInterval representing self as seconds

source

fn minutes(self) -> PgInterval

Returns a PgInterval representing self as minutes

source

fn hours(self) -> PgInterval

Returns a PgInterval representing self as hours

source

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.

source

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

fn microsecond(self) -> PgInterval

Identical to microseconds

source

fn millisecond(self) -> PgInterval

Identical to milliseconds

source

fn second(self) -> PgInterval

Identical to seconds

source

fn minute(self) -> PgInterval

Identical to minutes

source

fn hour(self) -> PgInterval

Identical to hours

source

fn day(self) -> PgInterval

Identical to days

source

fn week(self) -> PgInterval

Identical to weeks

source

fn month(self) -> PgInterval

Identical to months

source

fn year(self) -> PgInterval

Identical to years

Implementations on Foreign Types§

source§

impl IntervalDsl for i64

source§

impl IntervalDsl for f64

source§

impl IntervalDsl for i32

Implementors§