gpt4 book ai didi

postgresql - 当某些列是时间戳时,如何插入值?

转载 作者:行者123 更新时间:2023-11-29 14:08:49 24 4
gpt4 key购买 nike

我有以下 SQL 语句:

CREATE TABLE account (
user_id serial primary key,
username VARCHAR(50) UNIQUE NOT NULL,
password VARCHAR(50) NOT NULL,
email VARCHAR (355) UNIQUE NOT NULL,
created_on TIMESTAMP NOT NULL,
last_login TIMESTAMP
);

我想插入我的第一行:

INSERT INTO account VALUES (
1, 'usernamehere', 'password123', 'admin@yahoo.com');

我应该输入什么作为 created_on 和 last_login 时间戳列的值?

最佳答案

specify a valid timestamp literal有不同的方法.

我更喜欢 ANSI SQL 文字,例如:

timestamp '2018-10-15 18:49:10'

始终使用 ISO 时间戳格式(即 yyyy-mm-dd 和 24 小时时间表示法)。

或者,在 Postgres 中,您还可以将指定 ISO 格式的值的字符串转换为时间戳:'2018-10-15 18:49:10'::timestamp

如果您喜欢其他格式,可以使用带有格式掩码的to_timestamp,例如:

to_timestamp('25.08.2018 21:34:10', 'dd.mm.yyyy hh24:mi:ss');

要获取当前日期和时间,您可以使用 current_timestamp(这是标准 SQL)或 now()(这是 Postgres 特定的)。


不相关,但是:您不应该为 user_id 列提供值,因为它是自动生成的,并且通过手动指定值,您会使基础序列与插入的值。

所以你应该使用:

INSERT INTO account 
(username, password, email, created_on )
VALUES
('usernamehere', 'password123', 'admin@yahoo.com', current_timestamp);

或者,您可以指定user_id 列,但改用default 关键字:

INSERT INTO account 
(user_id, username, password, email, created_on )
VALUES
(DEFAULT, 'usernamehere', 'password123', 'admin@yahoo.com', current_timestamp);

或者,如果您想要 created_on 的特定值:

INSERT INTO account 
(username, password, email, created_on )
VALUES
('usernamehere', 'password123', 'admin@yahoo.com', timestamp '2018-10-15 18:49:10');

关于postgresql - 当某些列是时间戳时,如何插入值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52833673/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com