我正在尝试使用从Sybase ASE数据库创建的bcp文件在mysql中构建数据库。
我在bcp.out文件中有什么:
iker1 0 1 6 3 1 0 1 Sep 16 2011 11:20:05:950AM
iker2 1 1 6 3 1 0 1 Jun 15 2012 11:20:05:750AM
gdf34 0 2 6 3 1 0 1 Feb 05 2014 11:20:05:016AM
我对bcp.out文件的期望:
iker1 0 1 6 3 1 0 1 2011-09-16 11:20:05.950
iker2 1 1 6 3 1 0 1 2012-06-15 11:20:05.750
gdf34 0 2 6 3 1 0 1 2014-02-05 11:20:05.016
在我们执行bcp.out文件时,是否有任何方法可以在Sybase Central中格式化/配置日期字段的输出?
是否有(简单)方法(使用sed)?
答案 0 :(得分:2)
这是从数据库端执行此操作的一种方法。
在桌面上创建一个视图,定义您希望看到的日期转换。在这种情况下,以下语句将以您希望的格式检索日期。
select convert(char(10),your_date_column,23)+" "+convert(char(8),your_date_column,8)+"."+convert(char(3),datepart(ms,your_date_column))
这样可以与在桌面上创建视图结合使用:
create view my_view (col1, col2, col3, your_date_column) as
select col1, col2, col3, convert(char(10),your_date_column,23)+" "+convert(char(8),your_date_column,8)+"."+convert(char(3),datepart(ms,your_date_column))
from your_table
此时,您可以使用bcp
从视图中提取数据。
bcp MyDB..my_view out my_data.out -Uusername -Ppassword -Sservername -c
答案 1 :(得分:1)
sed 's/@\([a-zA-Z]\{3\}\) \([^@]*-@@-\)$/@\2\1/
s/Jan$/01/;s/Feb$/02/;s/Jun$/06/;s/Sep$/09/;s/Dec$/12/
s/@\([0-9][0-9]\) \([0-9]\{4\}\)\( [^@]*-@@-\)\([0-9][0-9]\)$/@\2-\4-\1\3/
s/..-@@-/-@@-/' YourFile
说明:
完成月份以完全在第二行工作。
我怀疑时间也必须改变(只有AM小时在这里),这个没有改变它