データベースから読み込んだ時間を文字列に変換

[戻る]
ひぃ 2005/08/23(火) 18:57:23
今、VC++6.0を使用してデータベースにアクセスするプログラムを作成しています。
そこで質問なのですが、
あらかじめAccess2000で作成したデータベースから
保存されている時間データ(文字列型)の翌日の日付を取得するため、
クエリ(SELECT DATEADD(〜))をCDaoRecordset::Open()で使用しました。

その後、CDaoRecordset::GetFieldValue()でCOleVariant型の変数を指定し、データを取得す
るまでは出来たんですけど、内部のデータがdouble型で1899年12月30日からの日数しか取得で
きていないのです。

これを、文字列の「YYYY/MM/DD」のフォーマットの形にするにはどうすればよいのでしょう
か?
よろしくお願いします。

環境:
Windows2000
Access2000
VC++6.0
MFC

かっちゃん 2005/08/23(火) 22:29:13
COleDateTime にほうりこんで,
COleDateTime::Format で出来るかな?

L/D 2005/08/23(火) 22:32:37
COleDateTimeを利用すると良いですよ。

COleDateTime value = COleDateTime (record.GetFieldValue ("カラム名称").date);
// .dateは必要ないかもしれないけど、一応。

ひぃ 2005/08/24(水) 10:19:22
[[解決]]
教えて頂いたことを試したら、無事に出来ました。

ちなみにどのように解決したかは、
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様ありがとうございます。

古いスレッドには追加発言できません。