1

我有一个格式为 2012-08-10 的日期。我想要日期的前四位数字。使用extract(year from date)可以,但是会在 CakePHP 中出现问题。

所以我尝试使用LEFT()RIGHT()

select LEFT(date,4) from table

但它不起作用。

4

3 回答 3

4

date如果您想从字符串中获取四位数年份,那么to_char这就是您想要的:

select to_char(some_date, 'YYYY') from table;

实际上,数据库内的几乎所有日期或时间格式都应该完成,to_char因此您可能需要阅读精美的手册

LEFT不起作用,因为 LEFT 想要一个字符串参数,但你给它一个date.

于 2012-08-14T07:29:11.673 回答
4

如果您不想使用提取,则可以使用子字符串

select substring('2012-4-03',1,4);

或使用select to_char(some_date, 'YYYY') from table;

你也可以写一个函数来调用left。但是postgresql中没有内置函数。

于 2012-08-14T07:29:14.657 回答
3

如果要从 DATE 中提取年份,请使用EXTRACT() :

SELECT EXTRACT(YEAR FROM fieldname) FROM tablename;

或 TO_CHAR(),正如其他人所提到的。

于 2012-08-14T08:01:05.903 回答