如何指定我的表将数据作为以分钟和秒为单位插入到列中?



我已经挣扎了几个小时,但一直无法找到解决问题的方法。这是一个作业,但我被困在这一部分。

CREATE TABLE Trip
(
Trip_Id                SERIAL,
Origin                 VARCHAR(50)     NOT NULL,
Destination            VARCHAR(50)     NOT NULL,
Date_Time_Picked       TIMESTAMP       NOT NULL    DEFAULT CURRENT_DATE,
Estimated_Time         TIME            NOT NULL    DEFAULT CURRENT_TIME,
Price                  DECIMAL         NOT NULL,
PRIMARY KEY(Trip_Id)
);

INSERT INTO Trip (Origin, Destination, Estimated_Time, Price  )
VALUES ('Hialeah' ,'Miami Beach', 30:00, 40.00);

postgreSQL 中的插入语句显示错误,因为时间格式。列Estimated_Time应该以分钟和秒为单位存储时间,但编译器显示错误,因为将 30:00 解释为小时和秒。如何处理用户的输入以将 30:00 保存为 30 分 0 秒。Trip 表可以修改,显然,插入语句需要从"30:00"转换为 Time 类型或强制转换,但我迷失了如何做到这一点。不幸的是,书籍没有解释这是如何完成的。我将非常感谢任何提示或示例。提前谢谢。

正如a_horse_with_no_name和Jarlh所指出的, Estimated_Time是行程的持续时间,因此格式应为间隔

CREATE TABLE trip (
trip_id SERIAL,
origin VARCHAR(50) NOT NULL,
destination VARCHAR(50) NOT NULL,
date_time_picked TIMESTAMP WITHOUT TIME ZONE DEFAULT 'now'::text::date NOT NULL,
estimated_time INTERVAL,
price NUMERIC NOT NULL,
CONSTRAINT trip_pkey PRIMARY KEY(trip_id)
) 

和插入灵魂是

INSERT INTO Trip (Origin, Destination, Estimated_Time, Price  )
VALUES ('Hialeah' ,'Miami Beach', '00:30:00', 40.00);

最新更新