DataTable.Select faktyczny problem z formatem


Filtruję datatable w zakresie dat za pomocą DataTable.Select, mój ciąg kryteriów to:
"CreatedOn >='03/11/2009 00:00:00' AND CreatedOn <='03/11/2009 23:59:00'"

Ten filtr nie zwraca żadnych wierszy (chociaż widzę pasujące wiersze w niefiltrowanym pliku danych). Jednak zauważam, jeśli zmienię kryteria na (zwróć uwagę na transpozycję dzień/miesiąc):
"CreatedOn >='11/03/2009 00:00:00' AND CreatedOn <='11/03/2009 23:59:00'"

Filtry z możliwością datowania są zgodne z oczekiwaniami. Oczywiście jest to problem z lokalizacją daty, czy istnieje łatwy sposób na sformatowanie daty, aby uniknąć tego problemu?
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Spróbuj:
string selectString = String.Format("CreatedOn >= '{0}' AND CreatedOn <= '{1}'",
startDate.ToString(DateTimeFormatInfo.InvariantInfo),
endDate.ToString(DateTimeFormatInfo.InvariantInfo));
dt.Select(selectString);
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Sprawdź, czy możesz sformatować datę jako „dd MMM rrrr” zamiast „MM/dd/rrrr”.
coś w tym stylu
dt.Select(String.Format("col >= '{0}'", new DateTime(2008, 12, 11).ToString("dd MMM yyyy")))
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Użyj standardowego formatu daty i godziny ISO w następujący sposób (na 3 listopada):
"CreatedOn >='2009-11-03 00:00:00' AND CreatedOn <='2009-11-03 23:59:00'"

W rzeczywistości, jeśli chcesz, aby wszystkie wpisy zostały utworzone 3 listopada, naprawdę powinieneś to zrobić, ponieważ chcesz również, aby wpisy były tworzone w ostatniej chwili, na przykład 23:59:30:
"CreatedOn >='2009-11-03' AND CreatedOn < '2009-11-04'"

Tutaj
http://www.w3.org/QA/Tips/iso-date
Jest krótka odniesienie

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się