Я попытался проверить месяц работы сотрудников, равный ли 3 месяца от начала работы до настоящего времени. И вот что я пытаюсь использовать:
int totalMonth = 3;
int totalYear = 0;
int mon = DateTime.Now.Month;
int yr = DateTime.Now.Year;
//block of code that I used LinQ to Entity to get staff start work date
result = result.Where(((s => mon - int.Parse(s.StartDate.Substring(3, 2).ToString()) == totalMonth && yr -int.Parse(s.StartDate.Substring(6, 4).ToString()) == totalYear))).ToList();
Формат даты в моей базе данных: 07/05/2012
Но я получил ошибку:
startIndex cannot be larger than length of string. Parameter name: startIndex
Может ли кто-нибудь сказать мне, что я здесь не так? Заранее спасибо.
1 ответ
Формат даты в моей базе данных - 05.07.2012.
Скорее всего, дата хранится в двоичном формате и не имеет формата. И то, что вы видите при перечислении записей, может отличаться от того, что происходит в C #.
Используйте отладчик, чтобы узнать, как на самом деле выглядит result.First().StartDate
. Может быть "5-7-12"
.
varchar(50)
не date
.
Похожие вопросы
Новые вопросы
c#
C# (произносится как «see Sharp») — это высокоуровневый мультипарадигменный язык программирования со статической типизацией, разработанный Microsoft. Код C# обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, которое включает в себя .NET, .NET Framework, .NET MAUI и Xamarin среди прочих. Используйте этот тег для ответов на вопросы о коде, написанном на C#, или о формальной спецификации C#.