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
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.