2017-12-20 3 views
-1

ich eine Frage über den Prozess des Datums habe,über den Prozess des seit

CreatedOn = DateTime.Now, I'm writing. 

Ich mag die datalies von heute zur Liste, aber ich konnte es nicht tun.

Datenbasierte: 2017.12.19 14: 46: 00,337

var notificationsList = _db.AllNotifications.Where (m => m.CreatedOn == DateTime.Today.Date) .ToList(); 
+0

Was wollen Sie mit Datum zu tun ..? Möchten Sie nur Datum in einem bestimmten Format abrufen oder Zeit in einem bestimmten Format erhalten? – Ankit

+1

Es ist nicht klar, welches Ziel Sie erreichen möchten. Bitte bearbeiten Sie Ihre Frage. – Danieboy

+0

'DateTime.Now' unterscheidet sich von' DateTime.Today'. Dies ist die Ursache Ihres Problems. – bradbury9

Antwort

0

Wenn Sie alle Elemente auflisten möchten w hich erstellt heute, sollten Sie die tatsächliche Uhrzeit ignorieren. zum Beispiel:

var notificationsList = _db.AllNotifications.Where (m => m.CreatedOn.Date == DateTime.Today.Date) .ToList(); 

Oder

var notificationsList = _db.AllNotifications.Where (m => DbFunctions.TruncateTime(m.CreatedOn).Value.CompareTo(DbFunctions.TruncateTime(DateTime.Today)) == 0) .ToList(); 
+0

Vielen Dank für Ihr Interesse. –

1

einfachste Weg, alle Artikel zu finden, die jederzeit heute auftreten, diejenigen zu finden, die auf geschehen oder nach Mitternacht heute und vor morgen:

var tomorrow = DateTime.Today.AddDays(1); 
... 
_db.AllNotifications.Where (m => m.CreatedOn >= DateTime.Today && 
           m.CreatedOn < tomorrow) 
+0

der folgende Fehler ist aufgetreten. LINQ to Entities erkennt die Methode 'System.DateTime AddDays (Double)' nicht und diese Methode kann nicht in einen Speicherausdruck übersetzt werden. –

+0

@ ArifÖZELCİ - verschieben Sie die Berechnung morgen aus der Zeile der Abfrage und es sollte in Ordnung sein. –

+0

vielen dank, was soll ich tun, wenn es zwischen zwei Daten heißt. –

Verwandte Themen