Send feedback on this topic.
Teradata.Client.Provider
TdIntervalDayToMinute Structure
Members  Example 



Teradata.Client.Provider Namespace : TdIntervalDayToMinute Structure
TdIntervalDayToMinute represents an interval of time defining a duration in days, hours and minutes. The day precision is configurable.
Object Model
TdIntervalDayToMinute StructureTdIntervalDayToMinute StructureTdIntervalDayToMinute StructureTdIntervalDayToMinute StructureTdIntervalDayToMinute StructureTdIntervalDayToMinute Structure
Syntax
Remarks

TdIntervalDayToMinute is a .NET Data Provider for Teradata specific type, designed to support a SQL Interval Day To Minute data type.

The TdIntervalDayToMinute supports the Teradata Interval Day (precision) To Minute data type where precision indicates the number of digits in the day (from 1 - 4).

The interval value must be specified in the following format :

[sign][days][space character][hh]:[mm]

Below is the description of each format item.

Format Item Description
sign Optional - . Defaults as space character (+).
days Required number of days (one to four digits in length).
hh Required number of hours from 00 - 23.
mm Required number of minutes from 00 - 59.

.NET does not have a system type that directly corresponds to the SQL Interval Day To Minute data type. The .NET Data Provider for Teradata Version 13.0 version and earlier versions map Interval Day To Minute to System.String. With version 13.1 of the provider, TdIntervalDayToMinute is available to retrieve and manipulate data of type Interval Day To Minute.

The range of values for each TdIntervalDayToMinute precision is as follows:

Type and Precision Minimum Maximum
TdIntervalDayToMinute(1)

-'9 23:59'

'9 23:59'
TdIntervalDayToMinute(2)

-'99 23:59'

'99 23:59'
TdIntervalDayToMinute(3)

-'999 23:59'

'999 23:59'
TdIntervalDayToMinute(4)

-'9999 23:59'

'9999 23:59'

TdIntervalDayToMinute also supports TdIntervalDayToMinute.Null. This is a very important feature. An application is no longer required to call TdDataReader.IsDBNull before invoking the corresponding TdDataReader "Get" method. This will improve overall performance.

A TdIntervalDayToMinute structure allows arithmetic, comparision and conversion operations to be performed.

A TdIntervalDayToMinute may also be specified as an in, out, or in/out parameter to a stored procedure. In order to maintain backward compatibility with previous versions of the provider (release 13.0 and prior), a Connection String Attribute TdConnectionStringBuilder.EnableTdIntervals has been added. When the EnableTdIntervals attribute is true, TdParameter.ProviderSpecificValue will return the data as the provider specific type of TdIntervalDayToMinute. When EnableTdIntervals is false, TdParameter.ProviderSpecificValue will return the data as a .NET Framework Library data type of String.

The TdParameter.Value will also return the .NET Framework Library data type of System.String when EnableTdIntervals is false to maintain backward compatibility. The TdParameter.Value will return a .NET Framework data type of TimeSpan when EnableTdIntervals is true.

For more information on the SQL Interval Day To Minute data type please see 'SQL Data Types and Literals'.

Example

The following example shows how to retrieve a TdIntervalDayToMinute, modify the interval, and then update the table.

Public void IntervalExample(TdCommand cmd, String model)
{
   cmd.Parameters.Clear();
   
   cmd.CommandText = "SELECT StartDate, LeaseReturn, DelayPeriod " +
                     "FROM AutoLeases " +
                     "WHERE Model = ?";
 
   cmd.CommandType = CommandType.Text;
 
   cmd.Parameters.Add(null, TdType.VarChar, 10,
        ParameterDirection.Input, true, 0, 0, null,    
        DataRowVersion.Default, model);
 
   Int32 row = 0;
   TdDate [] startDate;
   TdTimestamp [] leaseReturn;
   TdIntervalDayToMinute [] leaseLen;
   
   using (TdDataReader dr = cmd.ExecuteReader())
   {
      startDate = new TdDate[dr.RecordsReturned];
      leaseReturn = new TdTimestamp[dr.RecordsReturned];
      leaseLen = new TdIntervalDayToMinute [dr.RecordsReturned];
 
      // Specifying an interval of 7 days, 1 hour, 30 minutes 
      // with a day precision of 4
      TdIntervalDayToMinute leaseReturnExtension = new TdIntervalDayToMinute(7, 1, 30, 4);
   
      while (dr.Read())
      {
         // Retrieving the dates
         startDate[row] = dr.GetTdDate(0);
         leaseReturn[row] = dr.GetTimestamp(1);
         leaseLen[row] = dr.GetTdIntervalDayToMinute(2);
 
         // Adding extension to the lease return
         leaseReturn[row] = leaseReturn[row] + leaseReturnExtension;
 
         // Adding extension to the lease length;
         leaseLen[row] = leaseLen[row] + leaseReturnExtension;
 
         row++;
      } 
   }
 
   cmd.Parameters.Clear();
 
   cmd.CommandText = "UPDATE AutoLeases " +
                     "SET LeaseReturn = ?, LeaseLen = ? " +
                     "WHERE Model = ?";
 
   cmd.Parameters.Add(null, TdType.Timestamp, 0,
         ParameterDirection.Input, true, 0, 0, null,    
         DataRowVersion.Default, null);
 
   cmd.Parameters.Add(null, TdType.IntervalDayToMinute, 0,
         ParameterDirection.Input, true, 0, 0, null,    
         DataRowVersion.Default, null);
 
   cmd.Parameters.Add(null, TdType.VarChar, 9,
         ParameterDirection.Input, true, 0, 0, null,    
         DataRowVersion.Default, model);
 
   row--;
   while(row >= 0)
   {
      cmd.Parameters[0].Value = leaseReturn[row];
      cmd.Parameters[1].Value = leaseLen[row];
      cmd.Parameters[2].Value = model;
 
      cmd.ExecuteNonQuery();
      row--;
   }
}
Inheritance Hierarchy

System.Object
   System.ValueType
      Teradata.Client.Provider.TdIntervalDayToMinute

Requirements

Target Platforms: Windows 8.1, Windows 10, Windows Server 2012 R2, Windows Server 2016, Windows Server 2019

See Also

Reference

TdIntervalDayToMinute Members
Teradata.Client.Provider Namespace
EnableTdIntervals Property
Interval Connection String Attribute
Enabling Provider Specific Types
Provider Specific Type: Interval Type Overview