일/월 보관(년미포함)
데이터베이스에 데이터를 저장하는 가장 좋은 방법을 찾는 데 어려움을 겪고 있습니다.DD/MM 날짜를 데이터베이스에 저장해야 하는데, 이를 쉽게 분류하고 검색할 수 있도록 저장하는 방법을 잘 모르겠습니다.
기본적으로 사용자는 중요한 날짜를 DD/MM 형식으로 저장할 수 있으며, 해당 날짜는 오늘에 가까워질 것입니다.
DATE 데이터 유형은 연도가 포함되어 있기 때문에 완전히 적합한 것 같지는 않지만, 이 데이터를 저장하는 다른 방법은 생각할 수 없습니다.모든 경우가 끝날 때까지 특정 연도를 포함하는 것은 가능하겠지만, 이것은 거의 맞지 않는 것 같습니다.
DD/MM 날짜를 데이터베이스에 저장해야 하는데, 이를 쉽게 분류하고 검색할 수 있도록 저장하는 방법을 잘 모르겠습니다.
연도 성분이 필요하지 않더라도 날짜 데이터를 저장하는 가장 좋은 방법은 날짜를 사용하는 것입니다.사용해야 할 경우 연도를 제거하거나 비교되는 연도(또는 현재 연도)로 대체할 수 있습니다.
날짜 열에 있으면 올바르게 정렬, 무결성, 검증 등이 용이합니다.
윤년에 대응하려면 '0004-02-29'를 허용하는 '0004'와 같은 해를 사용합니다.4차 연도를 사용하면 0차 연도보다 약간 복잡하지만, 예를 들어, 다른 분야와 비교하기 위해 '29-Feb'(연도에 상관없이) 날짜가 올해의 날짜로 바뀝니다.
select
adddate(
subdate(cast('0004-02-29' as date),
interval 4 year),
interval year(curdate()) year)
result: 2011-02-28
이 날짜들이 반복되나요?만약 그렇지 않다면, 한 사람이 언제 "만료되었는지" 어떻게 추적하는 방법은 무엇입니까?"만료되면 앱에서 수동으로 날짜를 제거합니다."라고 대답한다면, 단순히 저장하지 않는 이유는 무엇입니까?DD/MM
해당 날짜의 다음 가능한 인스턴스로 날짜가 있습니까?예를 들어,
01/02
된다2012-02-01
,그리고.04\07
된다2011-07-04
내장된 날짜/시간 기능이 매우 유용하기 때문에 사용하지 말 것을 강력히 권합니다.varchars
아니면tinyints
.
정말로 한 해를 보내고 싶다면, 하루와 한 달 동안 두 개의 열을 작성하기만 하면 됩니다.그럼 따로 보관해주세요.
CREATE TABLE `table-name` (
`Day` tinyint NOT NULL,
`Month` tinyint NOT NULL
);
하지만 그냥 사용하는 것이 훨씬 좋습니다.Date
코드에 연도를 입력한 다음 무시합니다.
언급URL : https://stackoverflow.com/questions/4998470/storing-day-and-month-without-year
'source' 카테고리의 다른 글
mySQL date시간 범위 쿼리 문제 (0) | 2023.10.18 |
---|---|
raspberry Pi가 아닌 production server에서 작동하는 mysql window 기능 (0) | 2023.10.18 |
제출 버튼을 사용하지 않고 표준 HTML 유효성 검사(양식)를 트리거하시겠습니까? (0) | 2023.10.18 |
각도를 개선하는 방법많은 수의 DOM 요소를 포함한 JS 성능 (0) | 2023.10.18 |
jquery getResponseHeader는 항상 '정의되지 않음'을 반환합니까? (0) | 2023.10.18 |