python datetime에서 hour 문제

질문이 길어질 것 같지는 않습니다.

정확히 말하면 python django에서 model에 시간을 24:00:00으로 저장해야 하는데, 24:00:00으로 입력을 하면

Time has wrong format. Use one of these formats instead: hh:mm[:ss[.uuuuuu]].

라는 오류를 반환하길래 datetime에서도 직접 테스트 해보니

>>> a = datetime.datetime(2018, 1, 11, 24, 0, 0)

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: hour must be in 0..23

hour 범위가 0~23이더군요. 혹시 0시와 24시를 구분해야 하는데, 방법 없을까요?

  • '오늘 24시'라는 건 '내일 0시'일 겁니다. 그 개념으로 접근해 보시면 어떨까요. 엽토군 2018.12.6 15:34
  • 저도 그 생각이었지만.. 받은 요청에 맞게 개발을 해야 하는 입장이라서요. 날짜 없이 오직 시간으로 24시와 0시를 구분해야 합니다. 황준필 2018.12.6 15:36
  • 헐 그러신가요.. 정확한 시나리오가 뭔가요? 날짜가 없는데 (= 달력은 없고 시계만 주어져 있는데) 24시와 0시를 구분하는 게 되는지가 의문이네요. 요구사항이 좀 억지이거나 뭘 잘 모르는 소리일 수 있겠는데요. 애초에 모델로 DB에 저장할 때 타임스탬프에도 24시를 못찍을텐데.. 엽토군 2018.12.6 15:38
  • 그러니까 timedelta 같은 것도 못쓴다 이말씀이시죠? https://stackoverflow.com/a/2923346 엽토군 2018.12.6 15:41
  • 최악의 경우 해당 컬럼타입을 varchar 잡고 일일이 파싱하셔야겠네요 엽토군 2018.12.6 15:49
  • 어떤 일을 시작해서 24시에 끝나는지, 0시에 시작해서 몇 시에 끝나는지 구분해야 한답니다. DB는 mysql쓰는데 mysql TIME 형식은 '시각'이 아니라 '시간' 개념이라 24:00:00도 되더라고요. 황준필 2018.12.6 16:00
  • TIME 타입이면... 날쿼리 한번 날려보세요. https://docs.djangoproject.com/en/2.1/topics/db/sql/#performing-raw-queries 엽토군 2018.12.6 16:06
  • Model.objects.raw()로 INSERT도 할 수 있나요? 황준필 2018.12.6 16:34
  • 일단 워크벤치에서는 24시간 이상도 쿼리가 작동을 하네요. 그걸 orm로 가져오면 오류가 생기긴 하지만.. 황준필 2018.12.6 16:35
  • 헉 안되나.. 여기서부터 디테일한 부분은 잘모르겠습니다. 엽토군 2018.12.6 16:36

1답변

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.