diff --git a/src/Microsoft.ML.Data/Data/Conversion.cs b/src/Microsoft.ML.Data/Data/Conversion.cs
index 1f04ba1fc9..ae30c6e19f 100644
--- a/src/Microsoft.ML.Data/Data/Conversion.cs
+++ b/src/Microsoft.ML.Data/Data/Conversion.cs
@@ -231,6 +231,7 @@ private Conversions()
AddStd
(Convert);
AddStd(Convert);
AddStd(Convert);
+ AddStd(Convert);
AddAux(Convert);
AddStd(Convert);
@@ -1673,5 +1674,9 @@ public void Convert(in TX src, ref SB dst)
public void Convert(in BL src, ref R8 dst) => dst = System.Convert.ToDouble(src);
public void Convert(in BL src, ref BL dst) => dst = src;
#endregion FromBL
+
+ #region ToDT
+ public void Convert(in DT src, ref DT dst) => dst = src;
+ #endregion ToDT
}
}
\ No newline at end of file
diff --git a/test/Microsoft.ML.Core.Tests/UnitTests/DataTypes.cs b/test/Microsoft.ML.Core.Tests/UnitTests/DataTypes.cs
index 914fb2db38..6c93616cbf 100644
--- a/test/Microsoft.ML.Core.Tests/UnitTests/DataTypes.cs
+++ b/test/Microsoft.ML.Core.Tests/UnitTests/DataTypes.cs
@@ -228,6 +228,26 @@ public void TXToLong()
Assert.Equal(default, dst);
}
+ [Fact]
+ public void DTToDT()
+ {
+ bool identity;
+ var dtToDT = Conversions.Instance.GetStandardConversion(
+ DateTimeDataViewType.Instance, DateTimeDataViewType.Instance, out identity);
+
+ Assert.NotNull(dtToDT);
+
+ DateTime dt = new DateTime(2017, 03, 05);
+ DateTime result = default;
+
+ dtToDT(in dt, ref result);
+
+ Assert.True(identity);
+ Assert.Equal(dt, result);
+ Assert.Equal(3, dt.Month);
+ Assert.Equal(dt.Kind, result.Kind);
+ }
+
private static ValueMapper GetMapper(DataViewType dstType)
{
Assert.True(typeof(TDst) == dstType.RawType);