1

SQL Server には、.txt または .csv として CSV ファイルに出力される日時フィールドがいくつかあります。Excel 2010 で .csv ファイルを自動的に開くと、日時が mm:ss.0 にフォーマットされ、日付部分が完全に削除されます。

私はこれを読みました:ExcelでCSVファイルを開くとフォーマットが変更され、これ:Excelで認識されることが保証されている日付形式

以下は、CSV ファイル (.txt) に保存されている未加工のテキストのスニペットです。日付部分は ISO 形式であることに注意してください。時間部分にはミリ秒があります。

"EVENTSTARTDATE","EVENTTITLE","PURCHASEDATE"
"2013-04-17 00:00:00.0","Test Event","2013-04-17 15:06:27.56"

Excel での書式設定は次のとおりです。

EVENTSTARTDATE  EVENTTITLE  PURCHASEDATE
00:00.0         Test Event  06:27.6

フィールドをクリックすると、次の値が表示されます。

EVENTSTARTDATE                      PURCHASEDATE
4/17/2013  12:00:00 AM              4/17/2013  3:06:28 PM

「セルの書式設定...」に移動してフィールドの書式を見ると、「カスタム」と「mm:ss.0」になっています。日付形式に再フォーマットでき、正常に動作するため、明らかにデータ自体は正しいです。Excel が時刻の部分だけを書式設定するのはなぜですか? また、なぜ時間を削除するのですか? フィールド タイプが「一般」の場合、Excel は日時データを解析できませんか?

その他の関連情報: ColdFusion 9 を使用しており、CreateODBCDateTime() 関数を使用するコードがあります。

<cfif isDate(raw)>
   <cfset raw = CreateODBCDateTime(raw)>
</cfif>
4

1 に答える 1

1

問題を解決しました。この関数へのコードに埋め込まれた関数呼び出しがありました。

<cffunction name="QueryToCSV" access="public" returntype="string" output="false" hint="Converts a query to a comma separated value string.">
        <cfargument name="Query" type="query" required="true" hint="the query being converted to CSV">
        <cfargument name="Headers" type="string" required="false" default="#arguments.query.columnList#" hint="the list of field headings to be used when creating the CSV value">
        <cfargument name="Fields" type="string" required="false" default="#arguments.query.columnList#" hint="the list of query fields to be used when creating the CSV value">
        <cfargument name="lstDateTimeFields" type="string" required="false" default="" hint="the list of fields that should be output in a date/time format">
        <cfargument name="CreateHeaderRow" type="boolean" required="false" default="true" hint="flags whether or not to create a row of header values">
        <cfargument name="Delimiter" type="string" required="false" default="," hint="the field delimiter in the CSV value">

        <!--- 
            Author:
            Ben Nadel 

            Link:
            http://www.bennadel.com/blog/1239-Updated-Converting-A-ColdFusion-Query-To-CSV-Using-QueryToCSV-.htm
        --->
...
</cffunction>

これは、クエリを CSV に変換するために使用していたものです。lstDateTimeFields正しいフィールド名で引数を設定すると、Excel ファイルで正しくフォーマットされました。

于 2013-05-15T00:57:06.703 に答える