小编Pie*_* H.的帖子

SQL - PostgreSQL - 查找预订日历中的空白

我目前正在建立一个基于网络的系统,以允许用户在日历中查找船只的可用性。

我正在使用 PostgreSQL 9.6

用户应该能够说我想找到一艘在未来三个月内早上 08:00 到 16:00 之间可运行三个小时的船。

我当前的数据模型如下。

 CREATE TABLE cal_calendar (
  id INTEGER NOT NULL
 , start_time TIMESTAMP NOT NULL
 , time_range TSRANGE NOT NULL
);  
Run Code Online (Sandbox Code Playgroud)

cal_calendar 表有一个粒度为 15 分钟的 TSRANGE 列,包含:

  id  |     start_time      |                  time_range
------+---------------------+-----------------------------------------------
 4225 | 2017-02-14 00:00:00 | ["2017-02-14 00:00:00","2017-02-14 00:15:00")
 4226 | 2017-02-14 00:15:00 | ["2017-02-14 00:15:00","2017-02-14 00:30:00")
 4227 | 2017-02-14 00:30:00 | ["2017-02-14 00:30:00","2017-02-14 00:45:00")
 4228 | 2017-02-14 00:45:00 | ["2017-02-14 00:45:00","2017-02-14 01:00:00")
 4229 | 2017-02-14 01:00:00 | ["2017-02-14 01:00:00","2017-02-14 …
Run Code Online (Sandbox Code Playgroud)

sql database postgresql calendar

3
推荐指数
1
解决办法
1881
查看次数

Postgresql - 将字符串与空值进行比较

我有点困惑,因为我相信这个问题的答案相当简单,但我搜索并尝试了多种选择,但找不到正确的答案。

数据库是PostgreSQL 13.1

我正在使用一个 API,它将 JSON 对象发送到数据库中的存储函数,如下所示:

select * from api.car_model_create( '{
  "payload": {
    "manufacturer": "ai3ZV7PzbP5dNo2fb9q9QGjj2nS5aWJm",
    "name": "SR22",
    "variant": "G2",
    "subname": null
},
    "stk": "YbtmjypXMqXb1U5WOq53DxkaxrbIxl4X"
}'::json
);
Run Code Online (Sandbox Code Playgroud)

该函数查询具有以下结构的表:

CREATE TABLE app.car_models (
   id INTEGER NOT NULL
   , public_id CHARACTER(32) DEFAULT (api.random_string(32))
   , name CHARACTER VARYING(64) NOT NULL
   , variant CHARACTER VARYING(64)
   , subname CHARACTER VARYING(64)
   , designator CHARACTER VARYING(16)
   , manufacturer INTEGER NOT NULL
   , car_type INTEGER 
   , status INTEGER NOT NULL DEFAULT 1
) WITHOUT OIDS TABLESPACE app;
Run Code Online (Sandbox Code Playgroud)

函数内部是这样的查询: …

sql postgresql plpgsql sql-null

2
推荐指数
1
解决办法
1685
查看次数

标签 统计

postgresql ×2

sql ×2

calendar ×1

database ×1

plpgsql ×1

sql-null ×1