データベースから読み込んだ時間を文字列に変換 – プログラミング – Home

データベースから読み込んだ時間を文字列...
 
通知
すべてクリア

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


ひぃ
 ひぃ
(@ひぃ)
ゲスト
結合: 19年前
投稿: 8
Topic starter  

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

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

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

環境:
Windows2000
Access2000
VC++6.0
MFC


引用未解決
トピックタグ
かっちゃん
 かっちゃん
(@かっちゃん)
ゲスト
結合: 19年前
投稿: 1
 

COleDateTime にほうりこんで,
COleDateTime::Format で出来るかな?


返信引用
L/D
 L/D
(@L/D)
ゲスト
結合: 19年前
投稿: 3
 

COleDateTimeを利用すると良いですよ。

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


返信引用
ひぃ
 ひぃ
(@ひぃ)
ゲスト
結合: 19年前
投稿: 8
Topic starter  

教えて頂いたことを試したら、無事に出来ました。

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


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました