Ruby on Rails에서 DateTime, Timestamp, Time 및 Date의 차이점은 무엇입니까?
내 경험상 프로그래밍이 항상 위험하고 어려움에 처할 때 날짜 / 시간을 얻는 것이 좋습니다.
루비와 레일즈는 압도적으로 많은 옵션으로 인해 항상 이것에 대해 뛰어 들었습니다. 나는 어떤 것을 골라야할지 전혀 모른다.
Rails를 사용하고 ActiveRecord 데이터 유형을 볼 때 다음을 찾을 수 있습니다
: datetime, : timestamp, : time 및 : date
차이점이 무엇인지, 문제가 어디에 있는지 모릅니다.
차이점이 뭐야? 무엇을 위해 사용합니까?
(PS 저는 Rails3을 사용하고 있습니다)
ActiveRecord의 서로 다른 날짜 / 시간 형식의 차이는 Rails와 거의 관련이 없으며 사용중인 데이터베이스와 관련이 있습니다.
(만약 그것이 가장 인기 때문에 다른 이유로) 예로 MySQL을 사용하여, 당신은 DATE
, DATETIME
, TIME
및 TIMESTAMP
열 데이터 유형; 당신이 가지고있는 것과 같이 CHAR
, VARCHAR
, FLOAT
와 INTEGER
.
차이점이 무엇인지 물어보십시오. 글쎄, 그들 중 일부는 설명이 필요합니다. DATE
날짜 TIME
만 저장하고 시간 만 저장하고 DATETIME
둘 다 저장합니다.
의 차이 DATETIME
와는 TIMESTAMP
좀 더 미묘하다 : DATETIME
로 포맷됩니다 YYYY-MM-DD HH:MM:SS
. 유효한 범위는 1000 년에서 9999 년 사이입니다 (그리고 그 사이의 모든 것). 데이터베이스에서 가져올 때와 TIMESTAMP
비슷해 보이지만 실제로는 유닉스 타임 스탬프에 대한 최전선입니다 . 유효한 범위는 1970에서 2038 사이입니다. 여기에, 내장 된 데이터베이스 엔진 내에서 기능, 저장 공간 여러가지 옆에서. 때문에 DATETIME
모든 년, 월, 일,시, 분에 자리하고 두 번째는 총 8 바이트를 사용하여 저장합니다.으로는 TIMESTAMP
단지 수를 저장 1970-01-01 이후 초 단위로 4 바이트를 사용합니다.
MySQL 에서 시간 형식의 차이점에 대한 자세한 내용은 여기를 참조하십시오 .
결국, 그것은 당신이해야 할 일 / 시간 열에 달려 있습니다. 1970 년 이전 또는 2038 년 이후의 날짜와 시간을 저장해야합니까? 사용하십시오 DATETIME
. 데이터베이스 크기에 대해 걱정해야하며 해당 시간 범위 내에 있습니까? 사용하십시오 TIMESTAMP
. 날짜 만 저장해야합니까? 사용하십시오 DATE
. 당신은 시간을 저장해야합니까? 사용하십시오 TIME
.
이 모든 것을 말하면 Rails는 실제로 이러한 결정 중 일부를 결정합니다 . 모두 :timestamp
와 :datetime
기본값으로 사용됩니다 DATETIME
동안, :date
및 :time
대응을 DATE
하고 TIME
, 각각.
즉, Rails 내에서 날짜, 시간 또는 둘 다를 저장할지 여부 만 결정하면됩니다.
: 날짜 시간 (8 바이트)
- YYYY-MM-DD HH : MM : SS 형식의 날짜 및 시간 저장
- birth_date와 같은 열에 유용
: 타임 스탬프 (4 바이트)
- 1970-01-01 이후의 초 수를 저장합니다
- updated_at, created_at와 같은 열에 유용합니다.
- : 날짜 (3 바이트)
- 매장 날짜
- : 시간 (3 바이트)
- 매장 시간
'Programing' 카테고리의 다른 글
키 저장소 인증서의 SHA-1 지문 (0) | 2020.02.22 |
---|---|
HTML 스크래핑 옵션? (0) | 2020.02.22 |
C #에서 "내부"키워드의 실제 사용 (0) | 2020.02.22 |
Xcode-명령 행 도구 설치 (0) | 2020.02.22 |
Rake 작업 내에서 Rake 작업을 실행하는 방법은 무엇입니까? (0) | 2020.02.22 |