如何解决Mito 如何保存多个日期/时间类型
有些只有年份“2020”,有些有月份“2020-12”,还有一些有日期:“2020-12-21”
所以我想使用间隔。 像这样:
(define-table test-date ()
((date :col-type :interval
:initarg :date
:accessor date)))
(create-dao 'test-date
:date "2020 years")
(date (find-dao 'test-date))=>((:MONTHS 24240) (:DAYS 0) (:SECONDS 0) (:USECONDS 0))
第一季度。 interval
应该这样使用吗?
第 2 季度。如何获得年份?
解决方法
你对 interval
的使用很臭。看,您存储了一年,您将获得以月为单位的持续时间。 interval
用于存储持续时间,特别用于日期算术:date + INTERVAL expr unit
。所以我不认为你想在这里使用它来存储日期格式。
你可以:
- 要么存储日期并将不完整的日期转换为完整的日期:如果您的逻辑可以接受,“2020”将变为“2020-00-00”,
- 要么存储字符串并使用您自己的验证器函数(您可以使用 Mito 的 inflation/deflation 机制以正确的数据格式检索您的数据),
- 要么使用更多可以为空的日期字段(年、月、日...)。
日期和时间操作的秘诀:https://lispookbook.github.io/cl-cookbook/dates_and_times.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。