2012-03-21 4 views
4

시간/날짜 정보를 저장해야 할 때 데이터베이스에 저장하는 것이 가장 좋은 방법은 무엇입니까?
예 : String 표현으로 저장하면됩니다. 예를 들어 Date을 사용하여 현재 타임 스탬프를 가져와 String 표현을 DB에 저장하는 것이 좋습니다.
가장 좋은 방법은 무엇입니까? 어떤 단점이 있니?데이터베이스에 타임 스탬프 또는 날짜를 저장하는 가장 좋은 방법은 무엇입니까?

답변

15

TIMESTAMP 또는 DATE 유형을 데이터베이스에 사용하는 것이 가장 좋습니다. 모든 주요 데이터베이스 벤더는 이러한 SQL 표준 데이터 유형을 지원합니다.

성능 및 스토리지 최적화 외에도 표현력을 얻을 수 있으므로 사용중인 데이터베이스에 따라 데이터베이스에서 많은 datetime 조작 함수 및 연산을 직접 사용할 수 있습니다. Oracle을 사용하는 경우

  • 는 또한 DATE 것을 조심 그 ...

    주 ... 등, (예를 들어, 어떤 날 내일) 날짜에 간격, 날짜 추가 날짜를 비교 추가하는 방법에 대한 생각 시간 정보가 포함되어 있습니다.

  • SQLite를 사용하는 경우 datetime 유형에 숫자 또는 텍스트 유사성이있을 수 있습니다. 나는. 숫자 나 텍스트로 저장됩니다. SQL Server를 사용하는 경우
  • , 사이베이스 (ASE 및 SQL Anywhere를), SQLite는의 TIMESTAMP 데이터 유형의 방언 별 버전이라고합니다 DATETIME,
  • 적어도 H2 (SQL 서버의 TIMESTAMP 실제로 VARBINARY(8)입니다) HSQLDB, MySQL, Sybase SQL Anywhere는 TIMESTAMPDATETIME 데이터 타입 동의어를 모두 지원합니다.
+0

예를 들어 무엇을 사용하여 얻을 수 있습니까? '문자열'? – Jim

+0

@Jim : 업데이트 된 답변 –

1

MySQL과 T-SQL 모두에서 timestamp 데이터 유형을 사용하는 것이 가장 좋습니다.

타임 스탬프를 사용하면 원하는 데이터를보다 쉽게 ​​쿼리, 추가 또는 대체 일, 월, 년을 계산할 수 있습니다. 주문도 쉽습니다.

시간 소인에는 시간대 부분도 포함되어 있으므로 사이트를 국제화해야하는 경우 더 쉬울 것입니다.

PHP와 같은 대부분의 언어에는 타임 스탬프를 더 쉽게 읽을 수있는 형식으로 변환 할 수 있도록 선택한 형식으로 타임 스탬프를 표시하는 기능이 있습니다.

마지막으로 javascript/jquery 플러그인은 예를 들어 jQuery 시간과 같은 날짜 및 시간에 대한 계산을 수행하기 위해 전체 타임 스탬프가 필요할 수 있습니다.

+1

에서이 질문에 대해 회신 해 드리겠습니다. (SQL Server의) T-SQL에서'timestamp'는 실제로'varbinary (8)'입니다 ... SQL 타임 스탬프 데이터 유형은' datetime' T-SQL ... –

1

데이터베이스 공급 업체에서 제공하는 DATE/TIMESTAMP 데이터 유형을 사용하는 것이 가장 좋습니다. "미래에 특정 날짜 조건에 대해 쿼리 할 수 ​​있습니다"라는 필수 데이터 유형의 이점 중 하나는 나중에 예를 들어 두 날짜 사이의 보고서 등 01/05/11 및 01/02/12

  • 사이, 즉
  • 이 생성/년 특정 월의 보고서를 생성

    1. 에 필요로 날짜 현명한 보고서를 표시합니다 (예 : 8 월 15 일 총 판매량), 모두 String 데이터 유형을 사용하여 수행 할 수 있지만 날짜 비교는 String 표현 (char 또는 Varchar 등)보다 훨씬 빠릅니다. 4 .....

    위의 조건 외에도 Date를 사용하는 것이 더 많은 경우가 있습니까? 문자열 대신 TimeStamp ....

  • 관련 문제