我在 Azure 表中有一个字段,它以字符串格式保存日期时间。我想用 DateTime 字段替换它并转换字符串列中的值。解决这个问题的最佳方法是什么?
在 SQL 中,我会通过创建一个新列并运行更新语句来做到这一点......
我在 Azure 表中有一个字段,它以字符串格式保存日期时间。我想用 DateTime 字段替换它并转换字符串列中的值。解决这个问题的最佳方法是什么?
在 SQL 中,我会通过创建一个新列并运行更新语句来做到这一点......
我自己没有尝试过,但这里是/应该/工作的步骤。这需要是 C#/VB/etc 脚本。
一般来说,这是一个完整的 PITA,也是对象数据库和存储服务的祸根之一。
Azure 表存储客户端本机了解 DateTime(但不了解 DateTimeOffset),因此您可能需要考虑让 SDK 为您处理此事。
否则,将 DateTimes 表示为字符串的最佳方法是将它们显式存储和检索为使用“u”格式编写和解析的 UTC 值,例如
var dateAsString = myDateTime.ToString("u");
我不知道它是否会起作用,但你可以尝试“幸福的无知”:
Real Table 存储实际上并不关心实体的形状(开发结构可能不同)。将您的实体属性更改为 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。