我在数据表中有一个日期格式为的列dd/MM/yyyy HH:mm
。我使用下面的代码填充数据表,这对于 1 个以上的选择语句很常见,因此我无法在填充数据表之前指定列及其数据类型。填写数据后的任何操作对我来说都是可以接受的。
data_adapt = New OracleDataAdapter(query, OraConn)
dt = New DataTable
data_adapt.Fill(dt)
对于分页,我使用跳过创建数据表的副本并如下所示
dtLineupCopy = New DataTable
dtLineupCopy = dtLineup.AsEnumerable().Skip(startRows).Take(pageSize)).CopyToDataTable()
现在的问题是,当我使用 Compute 方法时,它不会将列值视为日期类型,而是从列中返回一些随机日期值而不是最小值。
Arvdate = dtLineupCopy.Compute("Min(Arrivaldate)", "")
有没有办法转换列的数据类型?
还尝试添加一个日期时间类型的新列,但它会引发错误System.FormatException: String was not recognized as a valid DateTime
dtLineupCopy.Columns.Add("ArvDate", getType(DateTime), "CONVERT(Arrivaldate, 'System.DateTime')")
dtLineupCopy 的 Arrivaldate 列中的数据。
22/09/2012 01:02
27/09/2012 17:01
1/10/2012 1:02
13/10/2012 07:26
14/10/2012 19:47
20/10/2012 00:00
20/ 10/2012 00:00