在TSQL查询中转换DateTime.FromBinary方法的逻辑

时间:2011-12-11 13:59:27

标签: c# tsql datetime

我有一个包含VARBINARY(MAX)数据类型列的表。该列表示我的c#DB图层类中不同类型的不同值。它可以是:intstringdatetime。现在我需要按照它的类型将一列转换为三列。因此,int类型的值会转到新列ObjectIntValue,依此类推每个新列。

但我在将数据传输到datetime列时遇到问题,因为旧列包含datetime值作为long从C#DateTime.ToBinary方法收到的数据,同时保存数据。

我应该在TSQL中使用它,并且不能使用.NET在新列中转换该值。你有什么想法吗?

感谢您的任何建议!

1 个答案:

答案 0 :(得分:0)

在T_SQl中使用CLR

基本上你使用Create Assembly在你的函数中注册dll, 然后创建一个用户定义的函数来调用它,然后就可以使用它了。 有几个规则取决于你想要做什么,但基本上你只需要DateTime.FromBinary(),不应该太难以弄明白。

从未自己做过,但这些家伙似乎知道他们在谈论什么

CLR in TSQL tutorial

这是一次性转换权吗?您对@schglurps的回应有点令人担忧。

如果我找到你,你的更新脚本就必须中断,也就是你实施这个chnage时你需要做的那个,那么你有一个关闭这个manouevre的程序,那么你将从一个新版本。

如果您想验证它,只需检查新列的存在或不存在。

其他选项是编写一个wee应用程序,该应用程序填充旧列中的新列并调用它。啊...

如果这不是一个关闭而你想保留和维护旧列,那么你就会遇到问题。