有人可以帮我将此 sqlite 查询转换为 postgres 查询吗?

Can someone help me convert this sqlite query to a postgres query?

SELECT substr(strftime('%Y', date),3,2) AS month, 0 AS zero FROM listvalue

我在 SQLite 中有这个查询,当我将它导入 Postgres 时,我在翻译 substr(strftime('%Y', date),3,2) 部分时遇到问题。

您可以将带有 TO_CHAR 函数的表达式转换为 PostgreSQL:

SUBSTR(TO_CHAR(date, 'YYYY'), 3, 2)

注意:%Y 格式将 return 日期的年份,而不是查询建议的月份。

SQLite 查询将 return 日期年份的最后一位数字。您可以使用适当的格式在 PostgreSQL 调用中省略 SUBSTR

TO_CHAR(date, 'YY')

substr(strftime('%Y', date),3,2) 提取列 date 的年份部分的最后 2 位数字,但在您的代码中您将其别名 as month!
如果你想在 Postgresql 中做同样的事情,你可以使用 extract() 获取年份,将其类型转换为 varchar 并使用 substr() 获取最后 2 个字符:

substr(extract(year from date)::varchar, 3, 2)

我们怀疑您要从日期列中提取年份值的最后两位。 strftime() 函数在 Postgres 服务器中不起作用。因此,建议您使用以下任一查询来实现您的要求,

SELECT substring(date_part('year', date)::varchar, 3, 2) AS year, 0 AS zero FROM listvalue;  

SELCT to_char(shipped_date, 'YY'), 0 AS zero from listvalue;

谢谢, Renuka N.