如何把岁月变成几个月?

时间:2018-07-17 14:59:16

标签: sql database postgresql

我正在使用postgreSQL-pgAdmin。 我需要在session_users表中添加一项功能,该功能可以计算中的用户资历。

我的代码是:

ALTER TABLE session_users ADD signup_seniority_attribute interval;      
update session_users su set signup_seniority_attribute=
(select age(signup_date) from session_users su1 where su1.user_id=su.user_id 
and is_the_account_master= 'N' group by su1.signup_date, su.signup_date);

the input for example is:

我需要求助于几个月:例如3年4个月= 40个月

3 个答案:

答案 0 :(得分:1)

假设其余查询正确无误,则应该可以使用date_part函数和一些数学运算来选择以月为单位的日期。像...

ALTER TABLE session_users ADD signup_seniority_attribute interval;      
UPDATE session_users su 
SET signup_seniority_attribute=
(SELECT(date_part('YEAR', age(su1.signup_date)) * 12) + date_part('MONTH', age(dob)) 
 AS Age_in_months 
 FROM session_users su1 
 WHERE su1.user_id=su.user_id 
 AND is_the_account_master= 'N');

请注意,我只是在最后更改了子查询,没有测试其余的查询。

以下是一个单独的date_part和数学示例:Let's buy some apples!

答案 1 :(得分:0)

如果我正确回答了您的问题,则应考虑使用DATEDIFF函数。

答案 2 :(得分:0)

EXTRACT(year FROM age(now(),su.signup_date))*12 + EXTRACT(month FROM age(now(),su.signup_date))

此处有更多说明-http://www.lexykassan.com/coding-conundrums/calculating-months-between-dates-in-postgresql/