Wie die Konvertierung von datetime-string in linqtosql?
Ich bin mit linqtosql und innerhalb der linq-Abfrage, ich habe versucht, zu konvertieren datetime-Spalte vom Typ string wie "dd-MM-yy'.
Allerdings bekam ich den Fehler wie folgt :
NotSupportedException: Methode
'System.String
ToString(System.String)' hat keinen
unterstützt die übersetzung nach SQL.
folgende ist meine linq-Abfrage:
from ffv in Flo_flowsheet_values
where ffv.Flowsheet_key == 2489
&& ffv.Variable_key == 70010558
&& ffv.Status == 'A'
&& ffv.Column_time >= DateTime.ParseExact("2010-06-13 00:00", "yyyy-MM-dd HH:mm", null)
&& ffv.Column_time <= DateTime.ParseExact("2010-06-13 22:59", "yyyy-MM-dd HH:mm", null)
select new {
ColumnTime = ffv.Column_time
,ColumnTimeForXCategory = ffv.Column_time.Value.ToString("dd-MM-yy") ***====> this statement invoke error***
,BTValue = Convert.ToDouble( ffv.Value) }
- Warum müssen Sie die ToString-Methode?
- ColumnTimeForXCategory Eigenschaft Typ string zu äußern datetime mehr readerable Weg. Ich möchte express ColumnTime Spalte like '13-06-2010'. deshalb habe ich ColumnTimeForXCategory Eigenschaft.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie
string.Format
alsToString()
Methode, um Ihr problem zu lösen.Wie
Stolperte ich über diesen Beitrag, warum ich war auf der Suche nach der gleichen Antwort. Hier ist, was ich schließlich entdeckte ich tun kann, aus der Suche in den Objekt-Eigenschaften des date-Objekts.
Diese vielleicht zu spät, aber trotzdem....versuchen Sie es mit .AsEnumerable()...ich habe auch irgendwie stolperte auf dieses problem fand ich dann dieses:
http://forum.linqpad.net/discussion/58/comparing-dates-in-linqpad
Sie analysieren die
DateTime
Zeichenfolgen im Ausdruck selbst und die LINQ to SQL-provider nicht übersetzen kann, dass C# - code in die entsprechenden T-SQL-code.Probieren Sie etwas wie dies:
Wie oben erwähnt, können Sie linq übersetzen will, was Sie tun, um sql.
Das ist in diesem Fall nicht möglich. Aber Sie könnten verwandeln es in eine Zeichenfolge, bevor Sie Ihre Abfrage und dann übergeben Sie die Zeichenfolge in das linq-Ausdruck.
Nicht in die Datenbank der Formatierung von Zeichenfolgen für die Benutzeroberfläche. Analysieren Sie diese auf der client-Seite.