SQLServer SUBSTRINGの使い方について

解決


超初心者  2009-09-25 16:47:57  No: 70978  IP: [192.*.*.*]

毎度お世話になります。

今回お聞きしたいのはSQLServerのSUBSTRINGの使い方についてです。

IDと日付2つを条件にDBから値を取ってくるのですが、どのようにすればいいかわからず悩んでいます。

条件の日付は、両方  2009/09/25  という形で、DBにはDateTime型で2009/09/25 0:00:00  の形で入っています。これをSUBSTRINGで2009/09/25という形に
かえて、条件の日付〜日付の間だったら取得、みたいなことをやりたいのですが

SELECT * FROM V_I_RT WHERE PATIENT_ID = '" + sPatientId + "'  〜〜

これから先どういう風に記述すればいいのかで悩んでいます。

言いたいことがうまく伝わればいいのですが・・・・・・・・・・


どなたかご教授いただけたら助かります。

宜しくお願い致します。

編集 削除
超t初心者  2009-09-25 17:03:52  No: 70979  IP: [192.*.*.*]

DBの中身は

varchar         datetime      varchar       varchar       varchar      varchar      varchar
PATIENT_ID      INS           BUI      PLAN PORT      GATE_NUM      SECTION      COMMENT      CGY
   1      2009/09/25 0:00:00  骨盤       1              1              外科        コメ        100

・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・


という感じで続きます。

宜しくお願い致します。

編集 削除
 2009-09-25 18:07:09  No: 70980  IP: [192.*.*.*]

VCは何処?という疑問はありますが

SELECT * FROM V_I_RT WHERE PATIENT_ID ='1'
AND INS BETWEEN '2009/09/25' AND '2009/09/30';
でいいのでは?(VCでの書き方は自前で考えてみてください)


または
CONVERT(varchar, INS , 111) BETWEEN '2009/09/25' AND  '2009/09/30' とか

どうしてもSUBSTRINGにこだわるなら
SUBSTRING(CONVERT(varchar,INS , 111), 1, 10) BETWEEN '2009/09/25' AND  '2009/09/30'
とか(これはあんまり意味ないかも)
下の二つのSQLは巨大なテーブルだと猛烈に遅くなるかもしれません。

編集 削除
超初心者  2009-09-28 13:05:21  No: 70981  IP: [192.*.*.*]

とさんご回答ありがとうございます。

早速お教えいただいた方法を参考にしてやってみようかと思います^^

ありがとうございました^^

編集 削除