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 내에서 날짜, 시간 또는 둘 다를 저장할지 여부 만 결정하면됩니다.