首页 > 解决方案 > (Angular 6 + Postgres)时间输入不能与 db 一起正常工作

问题描述

我有这个“输入”标签,我必须在其中输入时间值(小时和分钟)。我没有使用 HTML 5 的“type = 'time'”,因为我的数据库接收到一个字符串(如 12:30),因此拒绝了该信息(因为 postgres 期望“没有时区的时间”)。所以,我只是使用掩码来放置':'而不实际发送它们。但即使没有面具,数据库也无法正常工作。

例如,如果我进入我的字段并输入值“120000”(12:00:00),

在此处输入图像描述

postgres 实际保存的是:

在此处输入图像描述

然后你想“好吧,那就用 8 个字符加时间吧”,好吧,让我们尝试使用 13301500 (13:30:15.00):

在此处输入图像描述

结果:

在此处输入图像描述

我可以展示更多的例子。如果我输入“1230”,我会得到“21:00:01.23”,如果我输入“13”,我会得到“21:00:00.013”。有时我可以在数据库中的数字末尾看到我输入的值,但我仍然很困惑。我在这里做错了什么?

这是我的按钮:

<div id="form" class="left">
    <input
    formControlName="start" 
    class="form-control" 
    placeholder="Start">
</div>

这是我的发布方法(API):

@PostMapping("/turn")
    public Turn add(@RequestBody @Valid Turn T) {
        return TurnRepo.save(T);
    }

以及变量:

@Temporal(TemporalType.TIME)
@Column(name = "start", length = 15)
private Date start;

标签: htmlangularpostgresql

解决方案


推荐阅读