今、VC++6.0を使用してデータベースにアクセスするプログラムを作成しています。
そこで質問なのですが、
あらかじめAccess2000で作成したデータベースから
保存されている時間データ(文字列型)の翌日の日付を取得するため、
クエリ(SELECT DATEADD(~))をCDaoRecordset::Open()で使用しました。
その後、CDaoRecordset::GetFieldValue()でCOleVariant型の変数を指定し、データを取得す
るまでは出来たんですけど、内部のデータがdouble型で1899年12月30日からの日数しか取得で
きていないのです。
これを、文字列の「YYYY/MM/DD」のフォーマットの形にするにはどうすればよいのでしょう
か?
よろしくお願いします。
環境:
Windows2000
Access2000
VC++6.0
MFC
COleDateTime にほうりこんで,
COleDateTime::Format で出来るかな?
COleDateTimeを利用すると良いですよ。
COleDateTime value = COleDateTime (record.GetFieldValue (カラム名称).date);
// .dateは必要ないかもしれないけど、一応。
教えて頂いたことを試したら、無事に出来ました。
ちなみにどのように解決したかは、
szTime.Format(SELECT DATEADD('d', 1, '2005/08/24'));
if( m_pCDaoRecord->IsOpen != FALSE ) { m_pCDaoRecord->Close(); }
m_pCDaoRecord->Open( dbOpenDynaset, szTime );
COleDateTime Test = COleDateTime( m_pCDaoRecord->GetFieldValue( 0 ) );
szTime = Test.Format();
で、最終的にszTimeには「2005/08/25」が格納されました。
かっちゃん様、L/D様ありがとうございます。