【问题标题】:Error using select statement in psql command在 psql 命令中使用 select 语句时出错
【发布时间】:2021-10-19 08:46:00
【问题描述】:

我尝试执行跟随命令

psql -c '\\COPY (SELECT file_name, status, reported, operator_id, load_dt AT TIME ZONE GMT FROM mytable) TO STDOUT' > myfile

我收到一个错误

错误:“gmt”列不存在
第 1 行:...atus、reported、operator_id、load_dt AT TIME ZONE GMT FROM p...

【问题讨论】:

  • 你想达到什么目的?复制/导出表格内容到文件?
  • 将表格导出到 csv 并进行一些更改
  • 时区名称为文字,试试at time zone 'GMT'

标签: postgresql psql


【解决方案1】:

这对您有帮助吗?这是在Windows机器上。考虑到查询命令可能需要修改,具体取决于您的 PC 操作系统。

psql -U postgres -d aambackend_dev -c "SELECT \"createdAt\"::timestamp without time zone FROM \"User\" limit(2)" -H -o "D:\xxx1.html"

  • -U postgres - 用户
  • -d typeorm - 我要连接的数据库
  • -c ... - 我的查询命令
  • -H格式html,-o输出文件

更多信息可以参考:https://www.postgresql.org/docs/13/app-psql.html

注意 1:取决于我要选择的列,对于大多数列,我不需要转义反斜杠字符。仅对于带/出时区的时间戳类型的列,我需要为引号添加反斜杠。

注意2:这种情况下不需要末尾的分号(在其他一些命令和情况下是必要的)

这是我导出的文件:

如果您希望采用 CSV 格式: psql -U postgres -d aambackend_dev -c "SELECT "email",\"createdAt\"::timestamp without time zone FROM \"User\" limit(2)" -o "D:\xx2212.csv"

【讨论】:

    猜你喜欢
    • 2020-10-15
    • 2016-03-20
    • 1970-01-01
    • 2020-04-16
    • 2019-03-29
    • 2016-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多