django - Django 和 PostgreSQL - 如何存储时间范围?
问题描述
我想存储一个时间范围(没有日期),如“HH:MM-HH:MM”。你能给我一个提示,我怎样才能最容易地实现它?也许有一种方法可以使用 DateRangeField 来达到这个目的或其他目的。感谢您花时间!
解决方案
没有日期的时间并没有多大意义,因为如果您需要一个跨越午夜(天)的范围,您总是可以使用 to_char(<yourtimestamp>,'hh24.mi:ss') 转换为文本或提取各个部分。不幸的是,Postgres 没有提供 extract(time from <yourtimestamp>) 函数。以下功能基本上提供了这一点。
create or replace
function extract_tod(date_time_in timestamp without time zone)
returns time
language sql
as $$
select to_char(date_time_in, 'hh24:mi:ss')::time;
$$;
有关时间戳范围,请参见此处,有关它们的相关功能,请参见此处。至于如何存储,只需将日期存储为标准 TIMESTAMP(日期+时间)。
推荐阅读
- sql - SQL 查询以日期列作为决策标准从数据库中删除不正确的条目
- r - 在 odbc 包中为闪亮的应用程序定义连接
- python - 有没有办法评估 dict 中的组值并将它们附加到几个列表中
- javascript - DataTables 无法在 Edge 中对“日期”列类型进行排序
- flutter - Flutter Layout:在带有盒子约束的容器内伸缩之间的空间
- spring-data-jdbc - Spring data jdbc:如何使用来自 org.springframework.data.geo 包的 Point
- python - 如何使用 subprocess.run 在另一个文件中回显(bash)
- sql - 在 Node.js sequelize 和 PostgreSQL 中使用多对多关联创建/更新
- javascript - 如何单击输入字段内的字形图标
- android - 编译时android内核'rnd'可能使用未初始化错误