首页 > 解决方案 > 如何在postgres中比较两个时间和选择时间小

问题描述

我有个问题。我有两个时间:time01: 11:00 和 time02: 11.02。因为它是由用户输入的,所以我不知道 time01 小还是 time02 小。示例:我有预订,当用户输入时,它看起来像:

Insert into table01("time01,"time02") values ("11:01",11:02)

我想使用 postgres sql create funtion("or sql...) 从用户那里获取数据并进行比较。我希望选择时间小,然后我从 time01 和 time02 得到时间小并做一些事情。我该怎么做。

标签: sqlpostgresql

解决方案


很难理解您的问题,但我相信即使用户输入不正确,您也可能希望按顺序存储时间?然后你可以使用least()and greatest()。第一个返回最小的参数,第二个返回最大的。所以你可以这样做:

INSERT INTO table01
            (time01,
             time02)
            VALUES (least('11:01',
                          '11:02'),
                    greatest('11:01',
                             '11:02'));

编辑:

如果您只想保存较小的时间,只需使用least()并将其保存在您想要的任何地方。假设目标是表中的一milestonemilestones

INSERT INTO milestones
            (milestone)
            VALUES (least('11:01',
                          '11:02'));               

推荐阅读