2017-02-23 8 views
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 나노초로 저장하고 있습니까 ???

+0

이 동작은 매핑에 지정된 '형식'에 따라 달라집니다. .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). –

답변

0

그럼 실제로 1/100ths의 나노초를 저장합니다.

3.6e + 10으로 나누어 값을 시간 단위로 가져옵니다.

깔끔한!