2014-12-09 2 views
-1

SQL Server 2008을 사용하고 있습니다.이 서버는 인도에 있습니다. 사용자 로그인 및 로그 아웃 시간을 저장하려고합니다. SQL Server에서 쉽게 할 수 있습니다.DATETIME 또는 내가 선호해야하는 타임 스탬프는 무엇입니까?

이제 로그인/로그 아웃 시간을 확인할 다른 국가의 고객/관리자가 있습니다. 그들은 각각의 시간대에서이 시간을 원합니다.

또 다른 시나리오는 고객이 한 국가에서 다른 국가로 여행하기 때문에 시간대별로 로그 시간이 자동으로 업데이트되어야합니다.

내 이해는 클라이언트에 대한 datetime과 함께 표준 시간대 정보를 저장해야한다는 것입니다. 그래서 다른 시간대로 변환하는 TimeZoneInfo::ConvertTime 메서드를 사용할 수 있습니다.

내 고객에게 등록하는 동안 시간대를 절약 할 수있는 옵션을 제공 할 수 있습니다.

하지만 고객이 국가를 변경하면 수동으로 시간대를 변경해야합니까, 아니면 자동으로 시간대를 감지 할 수있는 방법이 있는지 의심해보십시오. 시스템 시간대를 확인할 수 있습니까?

어쨌든 타임 스탬프를 저장하면 도움이 될 수 있습니까?

+2

datetime (또는 정밀도에 따라 datetime2)을 사용하여 UTC로 데이터를 저장하십시오. 표시를 위해 <다른 시간대>를 <또 다른 시간대>로 변환하는 것보다 <표시 한 시간대>로 UTC를 변환하는 것이 훨씬 쉽습니다. DateTimeOffset에는 일부가 있지만 전부는 아닙니다. 예를 들어, DST를 이해하지 못합니다. 타임 스탬프 데이터 유형은 잘못된 명명 옵션이었고 [날짜 또는 시간과 절대적으로 관련이 없습니다] (http://stackoverflow.com/questions/7154742/how-do-i-get-date-time-information-from) -a-timestamp-column). –

+0

나는 MSSQLTips.com에서이 세 편으로 구성된 시리즈를 가지고있다. "저자 프로필"(http://www.mssqltips.com/sqlserverauthor/49/aaron-bertrand/)에서 " 날짜 "카테고리. –

+0

@AaronBertrand : 고객에게 시간대를 알려주는 가장 좋은 방법은 무엇입니까? – user3427540

답변

0

datetimeoffset을 사용하십시오. 우리 회사는 유럽 전역, 일부 아시아 국가 및 북미 지역에서 사업을 운영하고 있습니다. 현재 컴퓨터의 표준 시간대 설정을 데이터베이스로 전달하도록 응용 프로그램을 코드화하십시오. 사용자가 이동하면 Windows는 사용자의 지리적 위치를 감지 할 때 표준 시간대 정보를 업데이트 할 수 있습니다. DST에 대해 걱정할 필요가 없었습니다 (2 개 대륙에서 일광 절약 시간제를 사용하는 재미를 상상해보십시오).

시간대 정보가 저장되어 있으므로 원하는 시간대로 변환 할 수 있습니다. 또는 데이터를 읽는 응용 프로그램은 로컬 컴퓨터 시간대를 사용하여 데이터를 읽을 수 있습니다.

관련 문제