微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Mito 如何保存多个日期/时间类型

如何解决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 举报,一经查实,本站将立刻删除。