こんにちは。現在VB.NET2005とOracle10gで開発をしています。
SQLについてはセキュリティー対策のためパラメータクエリでおこなっています。
困ったことにパラメータクエリで範囲検索ができないのです。
以下のソースです。
Imports System
Imports System.Data
Imports Oracle.DataAccess.Client
private sub getdata()
Dim OraCommand As OracleCommand = New OracleCommand
Dim OraParameter(0) As OracleParameter 'パラメータ
'コネクションのセット
OraCommand.Connection = _Connection'オープンされたコネクション
'パラメータSQLをセット
OraCommand.CommandText = "select * from Table1 where UpdateTime >= :UpdateTime and UpdateTime <= :UpdateTime"
'名前によるパラメータ識別をON
OraCommand.BindByName = True
OraParameter(0) = OraCommand.Parameters.Add("UpdateTime","2007/01/23")
ReDim Preserve OraParameter(1)
OraParameter(1) = OraCommand.Parameters.Add("UpdateTime","2007/01/24")
'SELECT実行(結果は0件)
Return OraCommand.ExecuteReader()
TableAには二件のレコードが入っていて片方はUpdateTime列が
2007/01/23もう片方が2007/01/24です。
TableAのUpdateTime列のデータ型はTimestampです。
どなたかパラメータクエリで日付範囲検索の経験のある方
教えていただけないでしょうか?
No.1
- 回答日時:
Oracleは8iくらい、VBはVer6位の知識なんですが。
> UpdateTime列のデータ型はTimestampです。
元が英語圏のソフトですから、日付書式が正しくない、が原因でしょう。
Oracle側ならto_char()で、Access系なんかだったらFormat()で
希望の書式の「文字列」に変換して評価するのが確実かな。
where to_char(UpdateTime, 'yyyy/mm/dd') >= :UpdateTime and to_char(UpdateTime, 'yyyy/mm/dd') <= :UpdateTime
しかし、列名とパラメータ名とが同じで良いのでしょうか?
No.2ベストアンサー
- 回答日時:
比較する日付の表現が異なる、だと思いますよ。
10gに触れていないので、SQLPLusで、Timestanp型の列を参照してお試しください。
1)select UpdateTime from Table1 where条件は適当に。
2)select to_char(UpdateTime, 'yyyy/mm/dd hh24:mi:ss') from Table1 where条件は適当に。
1)の結果では日付のみのはず。しかし内部では時刻も持ち合わせているはず。
2)の結果では 2007/01/23 17:36:51 のような結果になるはず。
("UpdateTime","2007/01/23")の部分を
(TO_CHAR("UpdateTime", 'yyyy/mm/dd'), "2007/01/23")にするとどうなりますか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) シフト表のコマで「ブロック」されている前の時間の「出」を同一列の「休」と入れ替えたいがふぇきません。 2 2023/08/02 18:49
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Excel(エクセル) 指定文字列が該当するA列をアクティブセルにするには 3 2022/08/17 13:18
- Visual Basic(VBA) エクセルVBAのコードで質問です。 下のコードはJ16の文字列をB3を起点とする範囲から探して、見つ 5 2023/04/07 11:07
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Worksheets メソッドは失敗しま...
-
vba 2つの条件が一致したら...
-
Cellsのかっこの中はどっちが行...
-
【VBA】2つのシートの値を比較...
-
データグリッドビューの一番最...
-
Excelで、あるセルの値に応じて...
-
マクロ 最終列をコピーして最終...
-
DataGridViewに空白がある場合...
-
VBAで、特定の文字より後を削除...
-
rowsとcolsの意味
-
B列の最終行までA列をオート...
-
VBAを使って検索したセルをコピ...
-
VBAで、離れた複数の列に対して...
-
マクロ 関数を使った抽出でエラ...
-
IIF関数の使い方
-
VBAで重複データを確認したい
-
Changeイベントでの複数セルの...
-
VBAのFind関数で結合セルを検索...
-
エクセル アクティブセルから...
-
文字列の結合を空白行まで実行
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Worksheets メソッドは失敗しま...
-
Excelで、あるセルの値に応じて...
-
B列の最終行までA列をオート...
-
vba 2つの条件が一致したら...
-
Cellsのかっこの中はどっちが行...
-
VBAを使って検索したセルをコピ...
-
VBAのFind関数で結合セルを検索...
-
文字列の結合を空白行まで実行
-
IIF関数の使い方
-
【VBA】2つのシートの値を比較...
-
マクロ 最終列をコピーして最終...
-
Changeイベントでの複数セルの...
-
VBA 何かしら文字が入っていたら
-
URLのリンク切れをマクロを使っ...
-
エクセルVBAにて =A1=B1とすれ...
-
VBAでのリスト不一致抽出について
-
データグリッドビューの一番最...
-
マクロについて。S列の途中から...
-
VBA UserFormからの転記で
-
targetをA列のセルに限定するに...
おすすめ情報