2009-05-21 15 views
0

私は2つの列を持っています。 ColAとColBには、データ "20090520"と "20090521"のchar(10)が含まれています。MS Access - 日付としてCharを選択して日付を比較する

日の差を選択して取得したいと考えています。私はFormat()とCDate() を使用しようとしましたが、MS Accessは常に#ERRORとして表示されます。

答えて

3

のアクセスは、この形式でその日付を好む:

#2009-12-01# 

あなたの日付はアクセスと理解何かに変換することができます:

CDate(Format([ColA], "0000-00-00")) 

または

DateSerial(Left([ColA],4),Mid([ColA],5,2),Right([ColA],2)) 

そして、お好みの形式で結果を表示する:可能であれば、

Format(<date here>, "dd-mm-yyyy") 
+0

ありがとうございました。これはトリックでした。 –

+0

+1の優先日 - mm/dd/yyも有効ですが、年月日のバージョンはあいまいです。 日付は数値として保存され、Windowsの地域と言語の設定で設定された形式で表示されますが、必要に応じてFormatで上書きできます。地域設定ではなく、Format関数を使用することの短所は、Formatが日付ではなく文字列を返すことです。 – Fionnuala

1

は日付を変換するために)(DateSerialのを使用してみてください:

DateSerial(Left([FieldName],4),Mid([FieldName],5,2),Right([FieldName],2)) 
0

日付データ型にデータ型を変更します。文字データとして日付を格納すべきではありません。

+0

OPがそれをしているかどうかは私には分かりませんでしたが、それは私に起こった質問でした。 –

0

私は制御できない別のデータベースに接続しています。それがこの問題が発生した理由です。フィードバックをお寄せいただきありがとうございます。

関連する問題