我有一个数据表,其中包含格式为yyyymmdd的日期。我想在表中添加一个datetime列,其中包含该列的日期值。
现在的问题是该表包含大量记录,并且循环遍历所有记录需要一些时间。有没有办法进行批量更新或使用表达式来自this帖子?
类似的东西:
table.Columns.Add("MyDate", typeof(DateTime)).Expression =
DateTime.ParseExact("'strDateField'", "yyyymmdd", new CultureInfo("en-US"));
(上面的声明不会编译,这是预期的,但仅发布以提供我想要实现的示例)
答案 0 :(得分:1)
表达式使用.net公开的SQL函数的限制集来对数据表列进行操作,请参阅https://msdn.microsoft.com/en-us/library/system.data.datacolumn.expression(v=vs.110).aspx
您可以尝试下面的安排
dt.Columns.Add("MyDate", GetType(Date)).Expression = "SUBSTRING(strDateField,5,2)+'/'+SUBSTRING(strDateField,7,2)+'/'+SUBSTRING(strDateField,1,4)";