Mysql 在Sybase ASE(或使用Sed)中格式化bcp输出文件中的日期时间字段

Mysql 在Sybase ASE(或使用Sed)中格式化bcp输出文件中的日期时间字段,mysql,datetime,sed,sybase,bcp,Mysql,Datetime,Sed,Sybase,Bcp,我正在尝试使用从Sybase ASE数据库创建的bcp文件在mysql中构建一个数据库 我从Sybase创建ddl,并将其转换为Mysql ddl 我使用Sybase生成bcp.out文件 当我试图在新的Mysql数据库中插入这个bcp.out文件时,datetime字段的格式出现了问题 我在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:

我正在尝试使用从Sybase ASE数据库创建的bcp文件在mysql中构建一个数据库

  • 我从Sybase创建ddl,并将其转换为Mysql ddl
  • 我使用Sybase生成bcp.out文件
  • 当我试图在新的Mysql数据库中插入这个bcp.out文件时,datetime字段的格式出现了问题
  • 我在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
    
    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文件的期望:

    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
    
    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)来实现这一点

    说明:

  • 在月底隔离该月
  • 更改索引中的月份名称
  • 在日期中引入索引并重新设置其格式
  • 删除AM/PM(sed的数学能力不强,所以我选择最简单的,但基于相同的月份原则,可以调整时间)
  • 完成本月第二条生产线的全面工作


    我怀疑时间也必须改变(这里只有AM小时),这个sed不改变它

    这里有一种从数据库端执行的方法

    在表上创建一个视图,定义希望看到的日期转换。在这种情况下,下面的语句将以您想要的格式检索日期

    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
    

    要使用bcp,您需要使用一个视图,并将datetime转换为您希望在视图中使用的格式。从那个里你们可以用bcp从视野中消失。@MichaelGardner,是的,24小时clock@MichaelGardner我做了一个类似-->创建视图…,将(DATETIME,change_date,21)转换为change_date from names的视图,得到了相同的结果。我遗漏了什么吗?检查我的答案-应该会有帮助。