Struct oracle::sql_type::Timestamp [−][src]
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");
Implementations
impl Timestamp
[src]
pub fn new(
year: i32,
month: u32,
day: u32,
hour: u32,
minute: u32,
second: u32,
nanosecond: u32
) -> Timestamp
[src]
year: i32,
month: u32,
day: u32,
hour: u32,
minute: u32,
second: u32,
nanosecond: u32
) -> Timestamp
Creates a timestamp.
Valid values are:
argument | valid values |
---|---|
year | -4713 to 9999 |
month | 1 to 12 |
day | 1 to 31 |
hour | 0 to 23 |
minute | 0 to 59 |
second | 0 to 59 |
nanosecond | 0 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]
&self,
hour_offset: i32,
minute_offset: i32
) -> Timestamp
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 Clone for Timestamp
[src]
impl Copy for Timestamp
[src]
impl Debug for Timestamp
[src]
impl Display for Timestamp
[src]
impl FromSql for Timestamp
[src]
impl FromStr for Timestamp
[src]
type Err = ParseOracleTypeError
The associated error which can be returned from parsing.
fn from_str(s: &str) -> Result<Self, Self::Err>
[src]
impl PartialEq<Timestamp> for Timestamp
[src]
impl ToSql for Timestamp
[src]
fn oratype(&self, _conn: &Connection) -> Result<OracleType>
[src]
fn to_sql(&self, val: &mut SqlValue) -> Result<()>
[src]
impl ToSqlNull for Timestamp
[src]
fn oratype_for_null(_conn: &Connection) -> Result<OracleType>
[src]
Auto Trait Implementations
impl RefUnwindSafe for Timestamp
impl Send for Timestamp
impl Sync for Timestamp
impl Unpin for Timestamp
impl UnwindSafe for Timestamp
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T> ToString for T where
T: Display + ?Sized,
[src]
T: Display + ?Sized,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,