2012-04-19 83 views
0

我遇到问题。我无法使用edmfunction将此格式的字符串(dd/mm/yyyy)转换。 所以(mm/dd/yyyy)我可以。使用EdmFunction c将字符串转换为日期时间#

我的机器的文化是在葡萄牙文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 - OK 18/04/2012 - 失败

什么建议吗?

谢谢!

+0

ConvertToDateTime是什么? – 2012-04-19 02:25:34

+0

你想让服务器进行转换吗? – 2012-04-19 06:58:26

+0

嗨@AnuragRanjhan。以上是实际的身体。嗨 – Gus 2012-04-19 11:29:05

回答

0

那么,演员最终会翻译成SQL,因此您应该设置您的服务器以正确处理此字符串,即SET DATEFORMAT

但是也要考虑到这个铸造将在每一行完成,并且可能会很慢。找到其他方式来存储值(预先解析,存储为YYYY-MM-DD)或写入不同的等式是很好的。

相关问题