Member 12816281 Ответов: 1

Как вычесть два значения времени, которые хранятся в access 2007 в виде текстового типа данных


How to subtract two time values which is stored in access 2007 as a text datatype


Что я уже пробовал:

String str1 = null;
           string str2 = null;
           con1.Open();
           cmd1.CommandText = "insert into TimeCalculation (AttendanceLogId,AttendanceDate,EmployeeId,InTime,OutTime,Duration) select distinct AttendanceLogId,AttendanceDate,EmployeeId,InTime,OutTime,@d from AttendanceLogs where NOT EXISTS ( select * from TimeCalculation where TimeCalculation.AttendanceLogId = AttendanceLogs.AttendanceLogId )";

           OleDbDataReader rd = cmd1.ExecuteReader();
           while (rd.Read())
           {
               str1 = (rd["InTime"].ToString());
               str2 = (rd["OutTime"].ToString());
           }
           TimeSpan time = DateTime.Parse(str2).Subtract(DateTime.Parse(str1));
           cmd1.Parameters.AddWithValue("@d", time.ToString());

Graeme_Grant

И в чем проблема? Почему даты не хранятся в формате даты?

1 Ответов

Рейтинг:
0

OriginalGriff

Просто: не надо.
Храните их как DateTime вместо строк,и вы можете сразу же использовать стандартные операции сравнения и математические операции - что делает все намного проще.

Всегда храните данные в соответствующих типах данных: все остальное всегда будет давать вам проблемы позже, которые намного хуже, чем тривиальные хлопоты, связанные с использованием правильных типов в первую очередь.