Struct oracle::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");
Methods
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 Debug for Timestamp
[src]
fn fmt(&self, __arg_0: &mut Formatter) -> Result
[src]
Formats the value using the given formatter. Read more
impl Clone for Timestamp
[src]
fn clone(&self) -> Timestamp
[src]
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more
impl Copy for Timestamp
[src]
impl PartialEq for Timestamp
[src]
fn eq(&self, other: &Self) -> bool
[src]
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests for !=
.
impl Display for Timestamp
[src]
fn fmt(&self, f: &mut Formatter) -> Result
[src]
Formats the value using the given formatter. Read more
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]
Parses a string s
to return a value of this type. Read more