2
나는 TimeSpan
필드를 MySQL 데이터베이스에 NHibernate에 저장했다. 유창한 매핑은 다음과 같습니다.nhibernate는 MySQL의 TimeSpan을 어떻게 저장합니까?
Map(x => x.StartTime);
Map(x => x.EndTime);
특수한 유형은 없습니다.
DB에서 13:00 및 14:00은 DB에 각각 468000000000 및 504000000000을 표시합니다. 필드 유형은 BIGINT (int64)
저장 프로 시저에서 2 개의 시간 소인 사이에 시간 차이가 있는지 계산해야합니다. 그들이
예를 들어 첫 번째 숫자를하지 마십시오 제외
숫자는 경과 uSeconds의 수를 나타냅니다 것 같다 ...
: 468,000,000,000 또는 4.68e + 11
13시간입니다 4.68e + 10 마이크로 초 ...
그래서 실제로 1/100ths 나노초로 저장하고 있습니까 ???
이 동작은 매핑에 지정된 '형식'에 따라 달라집니다. .Net'TimeSpan'에 대한 기본값을 지정하지 않으면 기본값은 db 형식 인 Int64입니다. 그러나 db가 지원한다면 'Time'으로 변경할 수 있습니다. [(최신이 아닌) 목록보기] (http://nhibernate.info/doc/nhibernate-reference/mapping.html#mapping-types-basictypes) 또는 [NHibernate code] (https : // github.com/nhibernate/nhibernate-core/blob/master/src/NHibernate/NHibernateUtil.cs). –