【发布时间】:2021-03-30 22:44:54
【问题描述】:
我对 PostgreSQL 的查询有疑问。我有一个学校案例,我需要计算一个人在 2005 年 9 月 1 日注册学校时的年龄。在一个文件中,我有他们的出生日期,只有学校注册的年份。
年份注册是 int 类型('2005'),但我需要将其转换为 01-09-2005 (DD-MM-YYYY),即学年开始。我该怎么做?
-
如果我想计算注册日期和出生日期之间的差异,是否应该将其转换为日期类型?
-
如果是,我如何转换它以使出生日期成为日期类型并具有“01-09-2005”格式。
我有一个答案,但我不应该这样做:
SELECT AGE('01/09/2005', auditeur.date_nais)
FROM auditeur
JOIN inscription ON auditeur.id_auditeur = inscription.id_auditeur
我想要的是用 annee ('2005') 替换 '01/09/2005',这是一个 int 类型。
【问题讨论】:
-
为什么不用ISO 8601 format
YYYY-MM-DD而不是这种模棱两可的形式?这可以读作 1 月 9 日或 9 月 1 日。 -
因为在法国我们的阅读方式不同,日期的格式为 DD-MM-YYYY,甚至在编程时,我们的老师也希望我们这样做..
-
你的编程老师很固执。整个行业都已对 ISO 8601 进行了标准化。他们应该接受该计划。这种标准化的原因是我们不必处理奇怪的废话,例如法国偏爱特定日期,而与其他国家出于任何原因偏爱 MM-DD-YYYY 的日期发生冲突。
标签: sql postgresql date type-conversion date-math