格式化SQL日期字符串



我试图在select format((查询中获得一个在引号之间格式化的日期:

select format('CREATE TABLE temporary_table AS
SELECT id FROM table WHERE created >=%I ORDER BY 1 ASC LIMIT 1','2021-04-01');

我得到这个:

CREATE TABLE temporary_table AS
SELECT table FROM table WHERE created >="2021-04-01" ORDER BY 1 ASC LIMIT 1;

我想实际得到单引号之间的日期(因为这在执行时不起作用(

我怎样才能做到这一点?

对于单引号,您需要format()的说明符%L。类似:

SELECT format('CREATE TABLE temporary_table AS
SELECT id FROM table WHERE created >= %L ORDER BY 1 LIMIT 1','2021-04-01');

参见:

  • 在PostgreSQL中插入带单引号的文本

当然,只有当您参数化输入时,这才有意义。您不会麻烦使用format()作为一个固定的开始日期。

相关内容

  • 没有找到相关文章

最新更新