我有问题。我不能用edmfunction转换这种格式的字符串(dd / mm / yyyy)。 所以(mm / dd / yyyy)我可以。
我的机器文化是葡萄牙语BR。
请看下面的例子:
class Program
{
[EdmFunction("testeModel", "ConvertToDateTime")]
public static DateTime ConvertToDateTime(table table)
{
throw new NotSupportedException();
}
static void Main(string[] args)
{
var date = DateTime.Now.Date;
using (testeEntities t = new testeEntities())
{
var values = t.tables.Where(a => ConvertToDateTime(a) == date);
foreach (var value in values)
{
Console.WriteLine(value.nome);
}
}
Console.ReadKey();
}
<Function Name="ConvertToDateTime" ReturnType="Edm.DateTime" >
<Parameter Name="t" Type="testeModel.table" />
<DefiningExpression>
cast(t.date as DateTime)
</DefiningExpression>
</Function>
我的样本值: 04/18/2012 - 好的 18/04/2012 - 失败
有什么建议吗?
谢谢!
答案 0 :(得分:0)
好吧,演员表最终被翻译成SQL,因此您应该设置服务器以正确处理此字符串,即SET DATEFORMAT。
但是还要考虑到这个演员将在每一行完成并且可能会很慢。最好找到存储值的其他方法(提前解析,存储为YYYY-MM-DD
)或以不同方式写出相等。