Programing

Ruby on Rails에서 DateTime, Timestamp, Time 및 Date의 차이점은 무엇입니까?

lottogame 2020. 2. 22. 11:21
반응형

Ruby on Rails에서 DateTime, Timestamp, Time 및 Date의 차이점은 무엇입니까?


내 경험상 프로그래밍이 항상 위험하고 어려움에 처할 때 날짜 / 시간을 얻는 것이 좋습니다.

루비와 레일즈는 압도적으로 많은 옵션으로 인해 항상 이것에 대해 뛰어 들었습니다. 나는 어떤 것을 골라야할지 전혀 모른다.

Rails를 사용하고 ActiveRecord 데이터 유형을 볼 때 다음을 찾을 수 있습니다

: datetime, : timestamp, : time 및 : date

차이점이 무엇인지, 문제가 어디에 있는지 모릅니다.

차이점이 뭐야? 무엇을 위해 사용합니까?

(PS 저는 Rails3을 사용하고 있습니다)


ActiveRecord의 서로 다른 날짜 / 시간 형식의 차이는 Rails와 거의 관련이 없으며 사용중인 데이터베이스와 관련이 있습니다.

(만약 그것이 가장 인기 때문에 다른 이유로) 예로 MySQL을 사용하여, 당신은 DATE, DATETIME, TIMETIMESTAMP열 데이터 유형; 당신이 가지고있는 것과 같이 CHAR, VARCHAR, FLOATINTEGER.

차이점이 무엇인지 물어보십시오. 글쎄, 그들 중 일부는 설명이 필요합니다. 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 내에서 날짜, 시간 또는 둘 다를 저장할지 여부 만 결정하면됩니다.


  1. : 날짜 시간 (8 바이트)

    • YYYY-MM-DD HH : MM : SS 형식의 날짜 및 시간 저장
    • birth_date와 같은 열에 유용
  2. : 타임 스탬프 (4 바이트)

    • 1970-01-01 이후의 초 수를 저장합니다
    • updated_at, created_at와 같은 열에 유용합니다.
  3. : 날짜 (3 바이트)
    • 매장 날짜
  4. : 시간 (3 바이트)
    • 매장 시간

참고 URL : https://stackoverflow.com/questions/3928275/in-ruby-on-rails-whats-the-difference-between-datetime-timestamp-time-and-da



반응형