2012-04-19 36 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)或寫入不同的等式是很好的。

相關問題