我在Azure表中有一个字段,它以字符串格式保存日期时间。我想用DateTime字段替换它并转换字符串列中的值。什么是解决这个问题的最佳方法?
在SQL中,我通过创建新列并运行更新语句来实现这一点......
答案 0 :(得分:1)
我自己没试过,但这里是/应该/工作的步骤。这需要是一个C#/ VB / etc脚本。
一般来说,这是一个完整的PITA,也是对象数据库和存储服务的祸根之一。
答案 1 :(得分:0)
Azure表存储客户端本身理解DateTime(但不是DateTimeOffset),因此您可能需要考虑让SDK为您处理此事。
否则,将DateTimes表示为字符串的最佳方法是将它们显式存储和检索为使用“u”格式编写和解析的UTC值,例如
var dateAsString = myDateTime.ToString("u");
答案 2 :(得分:0)
我不知道它是否会奏效,但你可以尝试“幸福的无知”:
Real Table商店实际上并不关心实体的形状(Dev fabric可能不同)。将您的实体属性更改为DateTime,但在Setter测试中,该值是Datetime,如果不将该值解析为DT。像
这样的东西private DateTime myDT
public DateTime MyDT
{
get
{
return myDT;
}
set
{
DateTime = null;
if(value is DateTime)
{
myDT = value;
}
else
{
myDT = DateTime.Parse(value);
}
}
}
希望随着时间的推移,或明确地批量生成,如果只是加载实体并再次保存它们,它们将把它们全部设置为DateTime。