- PR -

ORACLEからVB.NET(ADOで接続)を使用してDATE型の値取得に関して

1
投稿者投稿内容
raytona
会議室デビュー日: 2005/05/09
投稿数: 9
投稿日時: 2005-05-09 13:42
VB.NETを使用してORACLEからデータを取得した時に
下記のようになりました。

------ 登録したデータ ------
TO_DATE('2005/05/09 09:05:09','YYYY/MM/DD HH24:MI:SS') 

------ 取得したデータ ------
2005/05/09 9:05:09
※時間だけ前ゼロが付かない

VB.NETでは
 変数名(String型) = ADODB.Recordsetオブジェクト.Fields("項目名").Value
を実施し変数に格納しています。

時間だけ前ゼロが付かないのは、どの部分(VB.NET,ADO,OS???)の仕様なのでしょうか?
それともどこか設定をすれば付くようになるのでしょうか?

よろしく御願いいたします。

情報
OS :Windows2003
DB :Oracle 10g
VB :Microsoft Visual Basic .NET
ADO:ADODB.dll 7.10.3077.0
今川 美保(夏椰)
ぬし
会議室デビュー日: 2004/06/10
投稿数: 363
お住まい・勤務地: 神奈川県茅ヶ崎市
投稿日時: 2005-05-09 13:58
引用:

raytonaさんの書き込み (2005-05-09 13:42) より:
------ 登録したデータ ------
TO_DATE('2005/05/09 09:05:09','YYYY/MM/DD HH24:MI:SS') 

------ 取得したデータ ------
2005/05/09 9:05:09


私は.NETに関しては詳しくないですが、
SQLとして取得時にはto_char(列名、'YYYY/MM/DD HH24:MI:SS')
を取得したら0がつくと思うのですが、
取得時にSQLで文字列変換されていますか?
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2005-05-09 14:08
raytonaさん、こんにちは。

引用:

 変数名(String型) = ADODB.Recordsetオブジェクト.Fields("項目名").Value
を実施し変数に格納しています。


日付時刻型から文字列型への暗黙の変換が行われているような気がします。
取り敢えず、「.NET Framework 開発者ガイド」-「型の書式設定」(とそこからのリンク先)あたりをじっくり読んでみて下さい。
raytona
会議室デビュー日: 2005/05/09
投稿数: 9
投稿日時: 2005-05-10 08:57
夏椰さん、きくちゃんさん、おはようございます。
この度はお答え頂きありがとうございました。

解決いたしましたのでお知らせいたします。

内容:--------------------------------------------------
 登録したデータ
 TO_DATE('2005/05/09 09:05:09','YYYY/MM/DD HH24:MI:SS') 

 取得したデータ
 2005/05/09 9:05:09
 時間だけ前ゼロが付かない
--------------------------------------------------------

解決方法:----------------------------------------------
 原因としてOSの設定でした。

 OSで設定されている時刻の表示方法が
  「H:MM:SS」
 になっていたからで

 設定を
  「HH:MM:SS」
 に変更したら時間に前ゼロが付きました。

 ※詳細は下記のページ上部を参照してください。 
 http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpguide/html/cpconStandardDateTimeFormatStrings.asp
--------------------------------------------------------

ありがとうございました。
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2005-05-10 09:26
raytonaさん、お早うございます。

引用:

 原因としてOSの設定でした。


もしも「日付時刻型の値を文字列としてどう表現するか」が割と重要な場合(帳票等のレイアウトとか)、OSの設定に左右されずに、意図したとおりの書式で出力する方法を学んでおいた方が良いと思います。
1

スキルアップ/キャリアアップ(JOB@IT)