LEFT()在Postgres中不起作用

时间:2012-08-14 07:08:35

标签: postgresql cakephp

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

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

select LEFT(date,4) from table

但它没有用。

3 个答案:

答案 0 :(得分:4)

如果您希望将date中的四位数字作为字符串,那么to_char就是您想要的:

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

实际上,数据库中的任何日期或时间格式都应该使用to_char完成,因此您可能需要阅读the fine manual

LEFT无效,因为LEFT想要一个字符串参数,但你给它一个date

答案 1 :(得分:4)

如果您不想使用像

这样的提取,则可以使用子字符串
select substring('2012-4-03',1,4);

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

你也可以编写一个左边调用的函数。但postgresql中没有内置函数。

答案 2 :(得分:3)

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

SELECT EXTRACT(YEAR FROM fieldname) FROM tablename;

或TO_CHAR(),正如其他人所说。