[][src]Struct oracle::sql_type::Timestamp

pub struct Timestamp { /* fields omitted */ }

Oracle-specific Datetime data type

This struct doesn't have arithmetic methods and they won't be added to avoid reinventing the wheel. If you need methods such as adding an interval to a timestamp, enable chrono feature and use chrono::Date, chrono::DateTime, chrono::naive::NaiveDate or chrono::naive::NaiveDateTime instead.

Examples

// Create a timestamp.
let ts1 = Timestamp::new(2017, 8, 9, 11, 22, 33, 500000000);

// Convert to string.
assert_eq!(ts1.to_string(), "2017-08-09 11:22:33.500000000");

// Create a timestamp with time zone (-8:00).
let ts2 = Timestamp::new(2017, 8, 9, 11, 22, 33, 500000000).and_tz_hm_offset(-8, 0);

// Convert to string.
assert_eq!(ts2.to_string(), "2017-08-09 11:22:33.500000000 -08:00");

// Create a timestamp with precision
let ts3 = Timestamp::new(2017, 8, 9, 11, 22, 33, 500000000).and_prec(3);

// The string representation depends on the precision.
assert_eq!(ts3.to_string(), "2017-08-09 11:22:33.500");

// Precisions are ignored when intervals are compared.
assert_eq!(ts1, ts3);

// Create a timestamp from string.
let ts4: Timestamp = "2017-08-09 11:22:33.500 -08:00".parse()?;

// The precision is determined by number of decimal digits in the string.
assert_eq!(ts4.precision(), 3);

Fetch and bind interval values.

let conn = Connection::connect("scott", "tiger", "")?;

// Fetch Timestamp
let sql = "select TIMESTAMP '2017-08-09 11:22:33.500' from dual";
let ts = conn.query_row_as::<Timestamp>(sql, &[])?;
assert_eq!(ts.to_string(), "2017-08-09 11:22:33.500000000");

// Bind Timestamp
let sql = "begin \
             :outval := :inval + interval '+1 02:03:04.5' day to second; \
           end;";
let mut stmt = conn.prepare(sql, &[])?;
stmt.execute(&[&OracleType::Timestamp(3), // bind null as timestamp(3)
               &ts, // bind the ts variable
              ])?;
let outval: Timestamp = stmt.bind_value(1)?; // get the first bind value.
// ts + (1 day, 2 hours, 3 minutes and 4.5 seconds)
assert_eq!(outval.to_string(), "2017-08-10 13:25:38.000");

Methods

impl Timestamp[src]

pub fn new(
    year: i32,
    month: u32,
    day: u32,
    hour: u32,
    minute: u32,
    second: u32,
    nanosecond: u32
) -> Timestamp
[src]

Creates a timestamp.

Valid values are:

argumentvalid values
year-4713 to 9999
month1 to 12
day1 to 31
hour0 to 23
minute0 to 59
second0 to 59
nanosecond0 to 999,999,999

pub fn and_tz_offset(&self, offset: i32) -> Timestamp[src]

Creates a timestamp with time zone.

offset is time zone offset seconds from UTC.

pub fn and_tz_hm_offset(
    &self,
    hour_offset: i32,
    minute_offset: i32
) -> Timestamp
[src]

Creates a timestamp with time zone.

hour_offset and minute_offset are time zone offset in hours and minutes from UTC. All arguments must be zero or positive in the eastern hemisphere. They must be zero or negative in the western hemisphere.

pub fn and_prec(&self, precision: u8) -> Timestamp[src]

Creates a timestamp with precision.

The precision affects text representation of Timestamp. It doesn't affect comparison.

pub fn year(&self) -> i32[src]

Returns the year number from -4713 to 9999.

pub fn month(&self) -> u32[src]

Returns the month number from 1 to 12.

pub fn day(&self) -> u32[src]

Returns the day number from 1 to 31.

pub fn hour(&self) -> u32[src]

Returns the hour number from 0 to 23.

pub fn minute(&self) -> u32[src]

Returns the minute number from 0 to 59.

pub fn second(&self) -> u32[src]

Returns the second number from 0 to 59.

pub fn nanosecond(&self) -> u32[src]

Returns the nanosecond number from 0 to 999,999,999.

pub fn tz_hour_offset(&self) -> i32[src]

Returns hour component of time zone.

pub fn tz_minute_offset(&self) -> i32[src]

Returns minute component of time zone.

pub fn precision(&self) -> u8[src]

Returns precision

pub fn with_tz(&self) -> bool[src]

Returns true when the timestamp's text representation includes time zone information. Otherwise, false.

pub fn tz_offset(&self) -> i32[src]

Returns total time zone offset from UTC in seconds.

Trait Implementations

impl FromSql for Timestamp[src]

impl ToSqlNull for Timestamp[src]

impl ToSql for Timestamp[src]

impl Clone for Timestamp[src]

impl PartialEq<Timestamp> for Timestamp[src]

impl Copy for Timestamp[src]

impl Debug for Timestamp[src]

impl Display for Timestamp[src]

impl FromStr for Timestamp[src]

type Err = ParseOracleTypeError

The associated error which can be returned from parsing.

Auto Trait Implementations

Blanket Implementations

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> From<T> for T[src]

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<'a, T> TryFrom<&'a str> for T where
    T: FromStr
[src]

type Err = <T as FromStr>::Err

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Err = <U as TryFrom<T>>::Err