none
BCPでCSV出力 RRS feed

  • 質問

  • 二点質問があります。

    よろしくお願いします。

    ①BCPでCSV出力する際、DATE型のデータが『YYYY-MM-DD HH:MI:SS.nnn』という形式で出力されて

    しまう。これを『YYYY/MM/DD HH:MI:SS』で出力する方法。

    ②BCPでCSV出力する際、単純に標題(Field Name)をつけて出力したい。

    【現行のコーディング】

    bcp DBxxxx.dbo.TBLxxxx out C:\TBLxxxx.csv -S SRVxxxx -P PWxxxx -U USxxxx -F 1 -c -t,

    【動作環境】

    OS:XP-Pro SP3

    DB:SqlServer 2005 Standard

    すいません、よろしくお願いします。

    2012年3月13日 4:10

回答

  • 日付のフォーマットについては、以下を読む限りODBC形式で固定のようです。したがって、SQLで工夫するしかありません。

    bcp ユーティリティ
    http://msdn.microsoft.com/ja-jp/library/ms162802(v=sql.90).aspx

    列タイトル出力についてもそのような機能はbcpにはないようですので、SQLで工夫するしかありません。

    以上より、以下のようにされてみてはいかがでしょうか?

    bcp "select '列1', '日付' union all select 列1, convert(char(10), 日付, 111) from DBxxxx.dbo.TBLxxxx" queryout C:\TBLxxxx.csv -S SRVxxxx -P PWxxxx -U USxxxx -F 1 -c -t,

    #date型ということでしたので、とりあえずyyyy/mm/ddの形式にしています。


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/



    • 編集済み trapemiya 2012年3月13日 6:17 「bcp ユーティリティ」のタイトルを追加
    • 回答としてマーク bontenmaru 2012年3月13日 13:03
    2012年3月13日 5:10

すべての返信

  • 日付のフォーマットについては、以下を読む限りODBC形式で固定のようです。したがって、SQLで工夫するしかありません。

    bcp ユーティリティ
    http://msdn.microsoft.com/ja-jp/library/ms162802(v=sql.90).aspx

    列タイトル出力についてもそのような機能はbcpにはないようですので、SQLで工夫するしかありません。

    以上より、以下のようにされてみてはいかがでしょうか?

    bcp "select '列1', '日付' union all select 列1, convert(char(10), 日付, 111) from DBxxxx.dbo.TBLxxxx" queryout C:\TBLxxxx.csv -S SRVxxxx -P PWxxxx -U USxxxx -F 1 -c -t,

    #date型ということでしたので、とりあえずyyyy/mm/ddの形式にしています。


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/



    • 編集済み trapemiya 2012年3月13日 6:17 「bcp ユーティリティ」のタイトルを追加
    • 回答としてマーク bontenmaru 2012年3月13日 13:03
    2012年3月13日 5:10
  • 解決しました。ありがとうございました。

    2012年3月13日 13:03