# OpcReadNodeHistoryDetails Members

> Reference: Provides an abstract base class which defines the time domain, number of values and additional criteria to use to select values from historical database for one or more variables.

<dl class="api-definition">
<dt>Type</dt>
<dd><a href="./">OpcReadNodeHistoryDetails</a></dd>
<dt>Namespace</dt>
<dd><a href="../namespaces/opc.uafx">Opc.UaFx</a></dd>
<dt>Assembly</dt>
<dd>Opc.UaFx.Advanced.dll</dd>
<dt>Package</dt>
<dd>Opc.UaFx.Advanced v2.59.0</dd>
<dt>Also in</dt>
<dd>Opc.UaFx.Client</dd>
</dl>

## Constructors

### OpcReadNodeHistoryDetails

<span class="api-meta">protected · 5 overloads</span>

| Overload | Description |
|---|---|
| [OpcReadNodeHistoryDetails(int)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreadnodehistorydetails/members#opcreadnodehistorydetails-system-int32)<span class="api-meta">protected</span> | Initializes a new instance of the [OpcReadNodeHistoryDetails](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreadnodehistorydetails/) class using the specified `numberOfValues` to select the historical values. |
| [OpcReadNodeHistoryDetails(DateTime?, int)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreadnodehistorydetails/members#opcreadnodehistorydetails-system-nullable-of-system-datetime-system-int32)<span class="api-meta">protected</span> | Initializes a new instance of the [OpcReadNodeHistoryDetails](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreadnodehistorydetails/) class using the specified `startTime` and `numberOfValues` to use to select the historical values. |
| [OpcReadNodeHistoryDetails(DateTime?, DateTime?, int)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreadnodehistorydetails/members#opcreadnodehistorydetails-system-nullable-of-system-datetime-system-nullable-of-system-datetime-system-int32)<span class="api-meta">protected</span> | Initializes a new instance of the [OpcReadNodeHistoryDetails](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreadnodehistorydetails/) class using the specified `startTime`, `endTime` and `numberOfValues` to use to select the historical values. |
| [OpcReadNodeHistoryDetails(DateTime?, DateTime?)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreadnodehistorydetails/members#opcreadnodehistorydetails-system-nullable-of-system-datetime-system-nullable-of-system-datetime)<span class="api-meta">protected</span> | Initializes a new instance of the [OpcReadNodeHistoryDetails](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreadnodehistorydetails/) class using the specified `startTime` and `endTime` to use to select the historical values. |
| [OpcReadNodeHistoryDetails(ReadRawModifiedDetails)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreadnodehistorydetails/members#opcreadnodehistorydetails-opc-ua-readrawmodifieddetails)<span class="api-meta">protected</span> | Initializes a new instance of the [OpcReadNodeHistoryDetails](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreadnodehistorydetails/) class using the `content` specified. |

#### OpcReadNodeHistoryDetails(int)

<span class="api-meta">protected</span>

Initializes a new instance of the [OpcReadNodeHistoryDetails](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreadnodehistorydetails/) class using the specified `numberOfValues` to select the historical values.

<div class="api-signature" data-lang="csharp">

```csharp
protected OpcReadNodeHistoryDetails(int numberOfValues)
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Protected Sub New(numberOfValues As Integer)
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `numberOfValues` | [Int32](https://learn.microsoft.com/dotnet/api/system.int32) | The maximum number of values returned for any node over the time range. |

**Exceptions**

| Exception | Condition |
|---|---|
| [ArgumentOutOfRangeException](https://learn.microsoft.com/dotnet/api/system.argumentoutofrangeexception) | The `numberOfValues` is lower or equals zero. |

#### OpcReadNodeHistoryDetails(DateTime?, int)

<span class="api-meta">protected</span>

Initializes a new instance of the [OpcReadNodeHistoryDetails](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreadnodehistorydetails/) class using the specified `startTime` and `numberOfValues` to use to select the historical values.

<div class="api-signature" data-lang="csharp">

```csharp
protected OpcReadNodeHistoryDetails(DateTime? startTime, int numberOfValues)
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Protected Sub New(startTime As Date?, numberOfValues As Integer)
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `startTime` | [Nullable](https://learn.microsoft.com/dotnet/api/system.nullable-1)&lt;[DateTime](https://learn.microsoft.com/dotnet/api/system.datetime)&gt; | The beginning of the period to read. |
| `numberOfValues` | [Int32](https://learn.microsoft.com/dotnet/api/system.int32) | The maximum number of values returned for any node over the time range. If only one time is specified, the time range shall extend to return this number of values. |

**Exceptions**

| Exception | Condition |
|---|---|
| [ArgumentException](https://learn.microsoft.com/dotnet/api/system.argumentexception) | The `startTime` is a null reference (Nothing in Visual Basic) or equals [MinValue](https://learn.microsoft.com/dotnet/api/system.datetime.minvalue). |
| [ArgumentOutOfRangeException](https://learn.microsoft.com/dotnet/api/system.argumentoutofrangeexception) | The `numberOfValues` is lower or equals zero. |

#### OpcReadNodeHistoryDetails(DateTime?, DateTime?, int)

<span class="api-meta">protected</span>

Initializes a new instance of the [OpcReadNodeHistoryDetails](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreadnodehistorydetails/) class using the specified `startTime`, `endTime` and `numberOfValues` to use to select the historical values.

<div class="api-signature" data-lang="csharp">

```csharp
protected OpcReadNodeHistoryDetails(
    DateTime? startTime,
    DateTime? endTime,
    int numberOfValues)
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Protected Sub New(
    startTime As Date?,
    endTime As Date?,
    numberOfValues As Integer)
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `startTime` | [Nullable](https://learn.microsoft.com/dotnet/api/system.nullable-1)&lt;[DateTime](https://learn.microsoft.com/dotnet/api/system.datetime)&gt; | The beginning of the period to read or a null reference (Nothing in Visual Basic) if no specific start time is specified. If `startTime` is not specified and the `numberOfValues` is equals zero the `endTime` needs to be specified. |
| `endTime` | [Nullable](https://learn.microsoft.com/dotnet/api/system.nullable-1)&lt;[DateTime](https://learn.microsoft.com/dotnet/api/system.datetime)&gt; | The end of the period to read or a null reference (Nothing in Visual Basic) if no specific end time is specified. If `endTime` is not specified and the `numberOfValues` is equals zero the `startTime` needs to be specified. |
| `numberOfValues` | [Int32](https://learn.microsoft.com/dotnet/api/system.int32) | The maximum number of values returned for any node over the time range. If only one time is specified, the time range shall extend to return this number of values. |

**Exceptions**

| Exception | Condition |
|---|---|
| [ArgumentException](https://learn.microsoft.com/dotnet/api/system.argumentexception) | The `startTime` and `endTime` are a null reference (Nothing in Visual Basic) or are equals [MinValue](https://learn.microsoft.com/dotnet/api/system.datetime.minvalue) and `numberOfValues` is lower or equals zero. |

#### OpcReadNodeHistoryDetails(DateTime?, DateTime?)

<span class="api-meta">protected</span>

Initializes a new instance of the [OpcReadNodeHistoryDetails](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreadnodehistorydetails/) class using the specified `startTime` and `endTime` to use to select the historical values.

<div class="api-signature" data-lang="csharp">

```csharp
protected OpcReadNodeHistoryDetails(DateTime? startTime, DateTime? endTime)
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Protected Sub New(startTime As Date?, endTime As Date?)
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `startTime` | [Nullable](https://learn.microsoft.com/dotnet/api/system.nullable-1)&lt;[DateTime](https://learn.microsoft.com/dotnet/api/system.datetime)&gt; | The beginning of the period to read or a null reference (Nothing in Visual Basic) if no specific start time is specified. If `startTime` is not specified the `endTime` needs to be specified. |
| `endTime` | [Nullable](https://learn.microsoft.com/dotnet/api/system.nullable-1)&lt;[DateTime](https://learn.microsoft.com/dotnet/api/system.datetime)&gt; | The end of the period to read or a null reference (Nothing in Visual Basic) if no specific end time is specified. If `endTime` is not specified the `startTime` needs to be specified. |

**Exceptions**

| Exception | Condition |
|---|---|
| [ArgumentException](https://learn.microsoft.com/dotnet/api/system.argumentexception) | The `startTime` and `endTime` are a null reference (Nothing in Visual Basic) or are equals [MinValue](https://learn.microsoft.com/dotnet/api/system.datetime.minvalue). |

#### OpcReadNodeHistoryDetails(ReadRawModifiedDetails)

<span class="api-meta">protected</span>

Initializes a new instance of the [OpcReadNodeHistoryDetails](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreadnodehistorydetails/) class using the `content` specified.

<div class="api-signature" data-lang="csharp">

```csharp
protected OpcReadNodeHistoryDetails(ReadRawModifiedDetails content)
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
<CLSCompliant(False)>
Protected Sub New(content As ReadRawModifiedDetails)
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `content` | <abbr title="OPC Foundation stack type, not documented here: Opc.Ua.ReadRawModifiedDetails">ReadRawModifiedDetails</abbr> | The <abbr title="OPC Foundation stack type, not documented here: Opc.Ua.ReadRawModifiedDetails">ReadRawModifiedDetails</abbr> to wrap, maintain and represented. |

**Exceptions**

| Exception | Condition |
|---|---|
| [ArgumentNullException](https://learn.microsoft.com/dotnet/api/system.argumentnullexception) | The `content` is a null reference (Nothing in Visual Basic). |

## Properties

### EndTime

Gets or sets the end of the period to read.

<div class="api-signature" data-lang="csharp">

```csharp
public DateTime? EndTime { get; set; }
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Property EndTime As Date?
```

</div>

**Property value**

[Nullable](https://learn.microsoft.com/dotnet/api/system.nullable-1)&lt;[DateTime](https://learn.microsoft.com/dotnet/api/system.datetime)&gt;

The [DateTime](https://learn.microsoft.com/dotnet/api/system.datetime) of the end of the period to read or a null reference (Nothing in Visual Basic) if no specific end time is specified.

**Remarks**

If [EndTime](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreadnodehistorydetails/members#endtime) is not specified and [NumberOfValues](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreadnodehistorydetails/members#numberofvalues) is equals zero the [StartTime](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreadnodehistorydetails/members#starttime) needs to be specified.

### NumberOfValues

Gets or sets the maximum number of values returned for any node over the time range.

<div class="api-signature" data-lang="csharp">

```csharp
public int NumberOfValues { get; set; }
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Property NumberOfValues As Integer
```

</div>

**Property value**

[Int32](https://learn.microsoft.com/dotnet/api/system.int32)

The maximum number of values returned over the time range. The default value is zero and indicates that there is no maximum.

**Remarks**

If only time (either [StartTime](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreadnodehistorydetails/members#starttime) or [EndTime](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreadnodehistorydetails/members#endtime)) is specified, the time range shall extend to return this number of values.

### ReturnBounds

<span class="api-meta">since v2.23</span>

Gets or sets a value indicating whether the bounding values should be returned.

<div class="api-signature" data-lang="csharp">

```csharp
public bool ReturnBounds { get; set; }
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Property ReturnBounds As Boolean
```

</div>

**Property value**

[Boolean](https://learn.microsoft.com/dotnet/api/system.boolean)

The value true to return the bounding values; otherwise the value false. The default value is false.

### StartTime

Gets or sets the beginning of the period to read.

<div class="api-signature" data-lang="csharp">

```csharp
public DateTime? StartTime { get; set; }
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Property StartTime As Date?
```

</div>

**Property value**

[Nullable](https://learn.microsoft.com/dotnet/api/system.nullable-1)&lt;[DateTime](https://learn.microsoft.com/dotnet/api/system.datetime)&gt;

The [DateTime](https://learn.microsoft.com/dotnet/api/system.datetime) of the beginning of the period read or a null reference (Nothing in Visual Basic) if no specific start time is specified.

**Remarks**

If [StartTime](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreadnodehistorydetails/members#starttime) is not specified the [EndTime](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreadnodehistorydetails/members#endtime) needs to be specified.
