2012-04-19 12 views
0

問題があります。 edmfunctionでこの形式の文字列(dd/mm/yyyy)を変換することはできません。 だから(mm/dd/yyyy)できます。EdmFunctionで文字列をdatetimeに変換する#

私のマシンの文化はポルトガル語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> 

マイサンプル値: - OK 18/04/2012は -

任意の提案失敗 2012年4月18日

、以下の私の例を見てください?

ありがとうございます!

+0

実際に 'ConvertToDateTime'の本文は何ですか? –

+0

サーバーで変換を実行しますか? –

+0

こんにちは@AnuragRanjhan。これは実際の身体です。こんにちは – Gus

答えて

0

まあ、キャストは最終的にSQLに変換されるため、この文字列を正しく処理するようにサーバーを設定する必要があります。つまり、SET DATEFORMATです。

また、このキャストはすべての行で実行され、おそらく遅くなることを考慮してください。値を格納する(あらかじめ解析して、YYYY-MM-DDとして保存する)か、等価を別に書くかのどちらかを見つけるのは良いことです。

関連する問題