iT邦幫忙

0

oracle的sql語句查出不是我設定範圍的資料,該如何修正sql語句?

  • 分享至 

  • xImage

大家好,我有個頭痛不知道怎麼解的問題想請教,是關於C#及oracle的sql子句,軟體是用Visual Studio,
目前頁面上有textbox1代表輸入活動的起始日期,textbox2代表輸入活動的結束日期,
假設我已有的活動起始及結束日期是2022/06/23~2022/06/25,
但是我要做的功能是,當我輸入2022/06/~2022/07/01時,
我要能查詢到"已有的活動起始及結束日期是2022/06/23~2022/06/25"這筆資訊

這是我目前寫的SQL:
SqlStr = "select start date, end date, campaign_name from campaign_table where to_char(start date,'yyyy/MM/dd') >= '1900/01/01' and to_char(end date,'yyyy/MM/dd') <= '9999/12/28' ";
但是這條句子,也會把我活動起始結束日期在2022/07/01~2022/07/02這筆資料也會搜尋出來,但不應該搜尋到超出我輸入設定的2022/06/~2022/07/01這個時間範圍的,

然後這是我的參數部分:
pO_params.Clear();
pO_params.Add("@start date", TextBox1.Text);
pO_params.Add("@end date", TextBox2.Text);

請問有人知道可以怎麼修改嗎?

謝謝...

你輸入"2022/06/~2022/07/01"這個時間範圍
然後SQL下
to_char(start date,'yyyy/MM/dd') >= '1900/01/01' and to_char(end date,'yyyy/MM/dd') <= '9999/12/28' ";

你完全沒用到輸入的時間範圍...
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
小魚
iT邦大師 1 級 ‧ 2022-06-29 12:21:44

請先完成新手任務,
最下方有個 iT邦幫忙使用說明,
切換到 角色與等級,
下面的 IT邦見習生
IT邦見習生

【**此則訊息已被站方移除**】
0
海綿寶寶
iT邦大神 1 級 ‧ 2022-06-29 16:57:49

參考這篇的範例
寫法大概如下

string SQL_cmd = "select * from Products where id=:id and type=:product_type ";
SqlStr = "select start date, end date, campaign_name from campaign_table where to_char(start date,'yyyy/MM/dd') >= :startdate and to_char(end date,'yyyy/MM/dd') <= :enddate ";

cmd.Parameters.Clear();
cmd.Parameters.Add("startdate", TextBox1.Text);
cmd.Parameters.Add("enddate", TextBox2.Text);

我要發表回答

立即登入回答