1

SQL Server から Excel ドキュメントにリンクされたデータがあります。SQL Server の列形式はdatetime2.

ODBC 接続を介してデータを取得すると、文字列として表示されますか?

使ってみた

CAST(column AS DATE ) 

しかし、それはうまくいきませんでした。

経由で再フォーマットしてみました

CONVERT(VARCHAR(10), column, 103) 

同様に、それはうまくいきませんでした。

Microsoftクエリでもデータを取得しようとしましたが、うまくいきませんでした。

現時点では、次のような VBA コードを使用しています。

While (ActiveCell.Value <> "")
  ActiveCell.Value = DATEVALUE(ActiveCell.Value)
  ActiveCell.Offset(1,0).Activate
Wend

この処理が必要な各列をループしますが、複数の列の100000行はループするのに永遠にかかります。代替手段はありますか?

4

3 に答える 3

2

Excel と Access も SQL Server の datetime2 形式が気に入らないようです。

データを日時形式に変換しましたが、現在は機能しているようです。

于 2013-10-29T09:09:30.977 に答える
1

Excel の日付を次の形式に変換するだけです。

「YYYY-MM-DD HH:mm:ss」

これはデフォルトの ODBC 標準形式です。この場合、暗黙的な変換が行われ、正しい結果が得られます。

もう 1 つの方法は、別のスタイルを使用して変換を実行することです。

CONVERT(VARCHAR(10), 列, 120)

于 2013-10-29T09:51:36.357 に答える
0

マクロは必要ありません。代わりに Excel テーブルの列を使用します。

Excel のすべての ODBC 接続はテーブルを返します。計算を使用して、テーブルの右側に新しい列を追加するだけです。次のようになります =DATEVALUE([@DateColumnFromODBC])

列はテーブルに合わせて追加および縮小され、ODBC 接続が同じままである限り、その参照が常に保持されます。

于 2013-10-25T07:20:22.587 に答える