2013-03-06 5 views
0

일부 간단한 솔루션이 누락되었을 가능성이 높지만 현재 날짜/시간을 SQLite 또는 Sybase 데이터베이스에 저장하거나 사용하는 실행 파일 (C++로 작성)이 있습니다 서버) 문제는 내가 클라이언트에서 datetime 대신 서버 컴퓨터 (데이터베이스가있는 위치)에서 datetime을 사용하고 싶습니다. 데이터베이스에 컴퓨터가있는 시간 또는 서버 시간을 가져 오는 다른 방법을 제공하는 방법이 있습니까? 이것이 가능한가, 아니면 클라이언트가 서버와 동일한 시간대에 있는지 확인해야합니까?서버 datetime 대 클라이언트 datetime

지금 난 그냥 간단한 SQL 쿼리를 사용하고 있습니다 :

Select dateTime('now'); //for SQLite 
Select Now(*); //for Sybase 

편집 : 나는 단지 SQLite는 솔루션

+0

실행 파일이 서버에 있다고 말하면 클라이언트 시스템도 서버가 아닌 것입니까? 또는 실행 파일이 서버에 상주한다는 것을 의미합니까?하지만 별도의 (클라이언트) 시스템에서 실행됩니다. – DeanOC

+0

문제의 경우 실행 파일은 매핑 된 드라이브의 서버에 있으며 클라이언트는 해당 실행 파일을 가리키는 바로 가기를 실행합니다. 그래서 예, 그냥 서버에 상주하고 다른 컴퓨터에서 실행됩니다. – Tbone

답변

1

유일한 솔루션을 찾고 있어요, 그래서 사이베이스는 이미 제대로 당신에게 서버 시간을 줄 않습니다 ntp 또는 sntp를 사용하여 모든 시스템의 시간을 동기화 된 상태로 유지하는 것입니다. 다른 솔루션보다 쉽고 정확하며 최신 OS에는 시간 서버와 동기화 할 수있는 표준 규정이 있습니다.

일부 외부 서버에서 동기화를 선택하거나, 장소의 서버에 설치하거나 네트워크의 ntp 서버 역할을하는 전용 장치를 구입할 수 있습니다. 그것은 모든 시간이 정확한 용어인지 (외부 시간 신호에 대한 자문을 필요로 할 것인가) 또는 기계간에 만 필요한지 여부에 달려 있습니다.

1

서버 시간을 사용하려는 경우 가장 간단한 방법은 현재 수행중인 작업을 수행하거나 서버에 앱에 다른 레이어를 추가하는 것입니다. 서버에 상주하며 db에 로컬 시스템 시간을 보내는 웹 서비스. 이 방법의 이점은 다른 시간대의 시스템에서 앱을 사용할 수 있도록 비즈니스 요구 사항을 변경하면 현지 시간에 영향을 미치지 않는다는 것입니다.

이외의 기계는 항상 방탄되지 않는 기계와 동기화되어야합니다. 외부 시간 신호를 사용하면 사용할 수 없게됩니다.