2009-04-03 2 views

답변

4

SQL Server에서 이와 같은 항목의 날짜를 처리하는 것이 더 좋습니다. 클라이언트가 날짜를 전달하면 클라이언트의 시간대가 다르거 나 한 클라이언트의 날짜가 잘못된 경우 문제가 발생할 수 있습니다. 또한 명령에서 보낼 항목이 하나 더 적습니다.

1

내보기는 방법이 일관성있는 한 당신이 그것을하는 곳에서 많은 차이를 만들지 않습니다.

나는 그것이 성능이나 유지 관리 측면에서 전혀 차이가 없다고 생각합니다.

내 선호는 데이터베이스에서 getdate()를 사용하여 생성하는 것이지만 ORM을 사용할 때 전달 된 문제가 발생했습니다.

0

기본값 인 GETDATE()를 사용하여 해당 열을 만들지 만 저장 프로 시저에 실제 값을 설정하게합니다. 모든 열을 포함하지 않는 INSERT 문을 사용하는 것은 나쁜 습관이라고 생각합니다.

해당하는 경우 트랜잭션 시작시 변수 @RunDate를 GETDATE()로 설정하고 모든 CreateDate 및 LastChgDate 열을 @RunDate로 표시하려고합니다. 기본 키에 날짜를 사용하지 않으므로 키가 작거나 같으면 중요하지 않습니다. 나는 사용자가 동시에 만들거나 변경 한 모든 것을 보는 것이 낫다고 느낍니다.

1

시간을 서버 현지 시간 대신 UTC로 작성해야합니다. 이 방법은 한 시간대에서 다른 시간대로 서버를 이동해야하는 경우 아무런 문제가 없습니다.

예를 들어 텍사스에서 캘리포니아로 서버를 이전하고 있습니다. 주요 프로덕션 응용 프로그램은 모든 datetime 값에 대해 UTC 시간을 사용합니다. 그러나 발권 시스템은 서버 시간을 사용하고 발권 응용 프로그램은 서버가 텍사스에 있다고 가정 할 때 값을 사용자 현지 시간으로 변경합니다. 서버를 캘리포니아로 옮길 때 모든 것이 매우 혼란스러워지며 그 값은 모두 2 시간 남았습니다.