2016-03-21 10 views
2

私はAccess DB 2007 - 2010を使用しています。私は多くのCSVファイルをインポートしようとしましたが、タイムスタンプの列は正しくインポートされません。文字列を日付に変換して値を抽出する方法

私はすべてのCSVをAccess DBにリンクしており、すべてのテーブルを照会しようとしています。

私はFormatdatepartと機能を組み合わせるしようとしているし、それが失敗し続ける(現在の文字列である)タイムスタンプから今年の一年と一日を抽出するために

をしようとしています。 (それはちょうどテーブルのエラーと言われています)

formatの機能は動作しますが、何かと組み合わせることはできません。

select datepart("y", Format(gmt, "dd-mmm-yyyy hh:nn:ss")) as DOY from Table1; 

を、それは失敗します。

は、私は基本的にこれをやろうとしています。私も CDateDateValueをさまざまな組み合わせで試しましたが、すべて失敗します。

誰でもこれを動作させる方法を知っていますか?

UPDATE

format関数は何もしていません。私がそれをどのようにフォーマットしようとも、テキストは同じままです。

ここ日時サンプルです:05 - 12月 - 2008年13:40:01.955

+0

@ HansUp:失敗します。私は日付サンプルを追加しました – djm

+0

@ハンズアップ:OMG!それはうまくいった!どうもありがとうございます!私はそれをupvoteすることができるように解決策としてそれを追加してください! – djm

答えて

1

アクセスがあなたの日付文字列でミリ秒に対応することができません。

Left()を使用して除外し、結果の部分文字列をCDate()に入力します。

SELECT CDate(Left(gmt, 20)) AS date_from_string 
FROM Table1; 

有効な日付/時刻値を持っていたら、今年抽出するためにYear(<Date/Time value>)DatePart("yyyy", <Date/Time value>)を使用することができます。そしてDatePart("y", <Date/Time value>)はあなたにその年の日を与えます。

関連する問題