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