Postgresql导出为CSV,文件名中包含日期/时间戳

时间:2014-12-23 14:57:42

标签: postgresql psql

我正在尝试将数据从select语句导出到csv,其中文件名部分由日期时间戳组成。

例如export_2014-12-23-14-56(export_yyyy_mm_dd_hh_mm)但我会采用任何格式。

当前生成导出的代码是

cd c:\program files\postgresql\9.2\bin
psql -U postgres -h 10.0.0.69 -d mbs01 -f -t -A -F"," -c "select * from bespoke.fedex_export" > y:\warehouse\fedex\fedex_export2.txt -L e:\fedex_export.txt

1 个答案:

答案 0 :(得分:1)

这更像是一个windows问题而不是postgresql问题,因为你正在处理如何在命令行上构建文件名。您可以使用%time%和%date%。

例如,如果你只调用%date%,它将输出一个完整的字符串,如:

>echo %date%
Tue 12/23/2014

因此,您希望从该日期获取子字符串来构建您的文件名。第一个是年份:

>echo %date:~-4,4%
2014

这从索引-4开始(从字符串末尾起4个字符),并给出4个字符的输出。

你也可以像这样使用正面索引:

  回收%日期:~10,4%       2014

要生成所需的格式,请从%date%和%time%中选择您想要的子字符串:

psql -U postgres -h 10.0.0.69 -d mbs01 -f -t -A -F"," -c "select * from bespoke.fedex_export" > export_%date:~-4,4%_%date:~-7,2%_%date:~-10,2%_%time:~0,2%_%time:~3,2%.txt