lisp - 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))
Q1。这是应该怎么interval
用的?
Q2。如何获得年份?
解决方案
你的使用interval
是臭的。看,你存储了一年,你得到了几个月的持续时间。interval
用于存储持续时间,特别是在日期算术中使用: date + INTERVAL expr unit
. 所以我不认为你想在这里使用它来存储日期格式。
你可以:
- 存储日期并将不完整的日期转换为完整的日期:如果您的逻辑可以接受,“2020”将变为“2020-00-00”,
- 存储一个字符串并使用您自己的验证器功能(您可以使用 Mito 的通货膨胀/通货紧缩机制以正确的数据格式检索您的数据),
- 要么使用更多可以为空的日期字段(年、月、日……)。
日期和时间操作的食谱:https://lispcookbook.github.io/cl-cookbook/dates_and_times.html
推荐阅读
- google-classroom - 谷歌课堂 API 与 Spring Boot 集成
- python - 使用 execute_steps 模拟场景大纲输出
- python - 将字符串转换为python中的函数
- google-sheets - Google 表格 QUERY IMPORTRANGE 公式
- node.js - CORS 错误,无法向 API 发送请求
- react-native - React native Textinput - 当删除该单词的一个字符时处理整个单词
- c# - Winforms 中的 C# API
- javascript - 如何预防:不要通过更改屏幕分辨率来调整容器 div 中的任何内容
- c# - 如何在 Blazor WebAssembly 中登录时运行代码?
- python - 如何使用 BeautifulSoup 库获取所有带有“titular”类的标签?