如何在PostgreSql中从秒中获取年、月和日?

如何在PostgreSql中从秒中获取年、月和日?,sql,database,postgresql,date,Sql,Database,Postgresql,Date,我正在尝试以秒格式基于日期创建三列 Myuser.updated_at=1521533490 我希望分别获取年、月和日,并将这些格式化值放入列中,例如: 年->2018年,月->11日->23日 有人知道我如何在pgSQL中做到这一点吗?尝试这种方法来获得不同的参数,然后您可以做任何您想做的事情: SELECT to_timestamp(1521533490); //2018-03-20T08:11:30.000Z SELECT to_char(to_timestamp(1521533490),

我正在尝试以秒格式基于日期创建三列

My
user.updated_at=1521533490

我希望分别获取年、月和日,并将这些格式化值放入列中,例如:

年->2018年,月->11日->23日


有人知道我如何在
pgSQL
中做到这一点吗?

尝试这种方法来获得不同的参数,然后您可以做任何您想做的事情:

SELECT to_timestamp(1521533490); //2018-03-20T08:11:30.000Z
SELECT to_char(to_timestamp(1521533490), 'HH'); // 08 Hour
SELECT to_char(to_timestamp(1521533490), 'MI'); // 11 Minutes
SELECT to_char(to_timestamp(1521533490), 'SS'); // 30 Seconds
SELECT to_char(to_timestamp(1521533490), 'DD'); // 20 Day
SELECT to_char(to_timestamp(1521533490), 'Mon'); // MAR Month
SELECT to_char(to_timestamp(1521533490), 'YYYY'); // 2018 Year
我希望分别获取年、月和日,并将这些格式化的值放入列中

不要那样做

根据您的应用程序,使用类型为
日期
时间戳
的单列。并非所有三列的组合都是有效日期。但是
date
类型的单个列中的每个值都将是有效日期


如果您需要单独的日期部分,请使用。

使用
提取功能

SELECT to_timestamp(updated_at) "Date",
EXTRACT(YEAR FROM (to_timestamp(updated_at))) "Year",
EXTRACT(MONTH FROM (to_timestamp(updated_at))) "Month",
EXTRACT(DAY FROM (to_timestamp(updated_at))) "Day"
FROM users
输出

Date                  Year  Month  Day
2018-03-20T08:11:30Z  2018  3      20
SQL Fiddle:


有关函数的详细信息。

日期没有三列。只需存储一个日期(或datetime)——但我认为1521533490是昨天(3月20日),而不是11月23日
SELECT to_timestamp(updated_at) "Date",
EXTRACT(YEAR FROM (to_timestamp(updated_at))) "Year",
EXTRACT(MONTH FROM (to_timestamp(updated_at))) "Month",
EXTRACT(DAY FROM (to_timestamp(updated_at))) "Day"
FROM users