日中に何度もレコードをSQL Server Management StudioからExcelにコピーして貼り付けています。
私の問題は、8/23/2013 4:51:02 PM
などのDateTime
値が、関数ボックスに正しく表示されていても、下の画像に示すように正しく表示されないことです。
データ型をShortDate
に変更すると、表示の問題が修正されますが、書式設定する日付フィールドがたくさんあるため、面倒です。 ExcelとSQL ServerはどちらもMicrosoft製品であるため、Excelが日付フィールドを正しく表示できることが期待されます。
編集:したがって、これはExcelの表示の問題のようです。 Management Studioの結果をメモ帳にコピーし、そこからExcelにコピーしても、同じ問題が発生します。 2013-08-23 16:52:11.493
をメモ帳からExcelにコピーすると、52:11.5
が表示されます(分、秒、および丸められたミリ秒が表示されます)。 Excelバージョンは2010です。
これを簡素化するアイデアはありますか?
また、この問題には、DATETIMEフィールドをSQL Management StudioからExcelにコピーして貼り付けて操作するだけの問題もありました。 ExcelにはDATETIMEの正しい値があります(貼り付け後に書式設定が適用される場合でも)が、既定では、SQL DATETIMEを表示する組み込みの形式はありません。修正方法は次のとおりです。
セルを右クリックして、「セルの書式設定」を選択します。カスタムを選択します。タイプ:入力フィールドに入力します
yyyy-mm-dd hh:mm:ss.000
参照: http://office.Microsoft.com/en-us/Excel-help/create-a-custom-number-format-HP010342372.aspx
アンドレと同じ問題がありました。直接的な解決策はないようですが、SMALLDATETIMEの制限内であれば、データを生成するクエリ内のCASTが問題を修正します。次のクエリでは、最初の列はExcelで正しくフォーマットされず、2番目の列は正しくフォーマットされません。
SELECT GETDATE()、CAST(GETDATE()AS SMALLDATETIME)
おそらく、DATETIMEおよびDATETIME2の秒の小数部分はExcelを混乱させます。
これは非常に古い投稿ですが、最近問題に遭遇しました。私にとっては、次のようにSQLをフォーマットすることで問題を解決しました。
SELECT CONVERT(varchar、getdate()、120)AS Date
SQL Serverから結果をコピーしてExcelに貼り付けると、Excelには適切な書式が保持されます。
カスタム日時フォーマットを覚えて再入力する必要のないソリューションを見つけましたyyyy-mm-dd hh:mm:ss.000
=NOW()
または5/30/2017 17:35
のような有効な日付と時刻のいずれかを記述します。言語で正しく表示されます。 5/30/2017 5:35:00 PM
これにより、適切な日時形式が列全体にコピーされ、正しく表示されます。
あなたの質問に対する完全な答えではありませんが、選択したセルのフォーマットを日付または時刻に変更するためのショートカットキーがExcelにあります(残念ながら、Date + Timeには見つかりませんでした)。
したがって、日付だけを探している場合は、次のことを実行できます。
Ctrl
+ Shift
+ 3
を押しますTimesとしてフォーマットするには、Ctrl
+ Shift
+ 2
を使用します。
これはSQL SERVERで使用できます
SELECT CONVERT(nvarchar(19)、ColumnName、121)AS [変更時] FROMテーブル
以下を試してください。「2004-06-01 00:00:00.000」をExcelに貼り付けます。
「2004-06-01 00:00:00」をExcelに貼り付けてみてください。
Excelは貼り付け時にミリ秒を処理できないようです...
これは役立つかもしれないハックです...時間値の前にアポストロフィを置くので、SSMSで出力を右クリックして「ヘッダーでコピー」と言ってからExcelに貼り付けると、ミリ秒/ datetime2値のナノ秒。そこにアポストロフィを配置するのは少しbutいですが、Excelで時間の値を不必要に丸めるというフラストレーションよりはましです。日付は英国形式ですが、MSDNのCONVERT関数ページをご覧ください。
SELECT CONVERT(VARCHAR(23)、sm.MilestoneDate、103)AS MilestoneDate、 '' '' + CONVERT(VARCHAR(23)、sm.MilestoneDate、114)AS MilestoneTime FROM SomeTable sm
SQL Serverからかなりの数のアドホックレポートを生成し、それらをExcelにコピーして貼り付けると、この同じ問題がしばらく続きました。また、適切なソリューションを歓迎しますが、一時的な回避策は、強調表示されたセルをExcelの日時形式に変換し、それをホットキー(私の場合はShift-Ctrl-D)に割り当てるExcelでデフォルトマクロを作成することでしたそこで、Excelを開き、SSMSから新しいExcelワークシートにコピーして貼り付け、変換する列を強調表示して、Shift-Ctrl-Dを押します。仕事完了。