我正在尝试将数据从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
答案 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