從程式中傳遞開始日期與結束日期至儲存過程
先來看看這個功能:
你會在程式介面放兩個文字框,讓使用者填入日期來進行查詢資料。此時你可能會想到它有三種情況出現,使用者只填第一個文字框,或只填第二個文字框,也有可能兩個均填。
這三種情況,你將怎樣處理邏輯呢?
Insus.NET所理解,如果使用者只填第一個文字框日期,第二個沒有填,那就意味著使用者是想告訴系統想查詢大於等於這個日期的記錄。
如果第一個文字框沒有填,只填第二個日期,說明是想查詢小於或等於這個日期的記錄。
如果兩個均填,說明是查詢這個日期之間的記錄。大於等於開始日期,小於等於結束日期。
在這裡,如果有結束日期判斷時,小於等於的條件,會有可能記錄不正確。因為傳於的日期,真正傳入至SQL時,它會變時xxxx-xx-xx 00:00:00.000對吧。
如果所查詢的欄位包含有時間的話,就不準確了。 記錄有2015-10-23 09:55:13值,但你傳的日期如2015-10-23,經轉換後為2015-10-23 00:00:00,此時使用小於等於就查詢不到這筆記錄了。
因此要處理結束日期時,正確使用條件是把結束日期加一天,用小於條件來處理。
在儲存過程中,你可以這樣寫:
得到where條件,你就可以進行下一步了:
上面#33和#34行程式碼判斷,如果使用者兩個文框的日期都沒有填寫時,直接是查詢所有日期的記錄。
另外是使用動態的SQL來執行。語法方面不懂,查閱一下MSDN。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/855/viewspace-2812802/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- js 根據開始日期和結束日期顯示倒數計時JS
- mysql儲存過程及日期函式實踐MySql儲存過程函式
- oracle批量生成日期字尾的表儲存過程程式碼Oracle儲存過程
- 獲取指定日期是當年第幾周,指定日期所在周的開始和結束日期
- Windows 7 釋出日期 結束日期 時長Windows
- 在儲存過程A中呼叫儲存過程B的結果儲存過程
- jdbctemplate呼叫儲存過程傳遞陣列引數JDBC儲存過程陣列
- MySql儲存過程中limit傳參MySql儲存過程MIT
- 儲存過程 傳 datatable儲存過程
- sqlserver 臨時表 遊標 儲存過程拼sql 日期函式等SQLServer儲存過程函式
- 日期和時間的儲存與處理
- elementUI中日期選擇器,控制開始時間小於結束時間UI
- webpack 從開始到結束Web
- 日期的正確儲存方式
- 在遠端和本地儲存過程間傳遞陣列儲存過程陣列
- 儲存過程與儲存函式儲存過程儲存函式
- 從sybase的儲存過程轉向oracle的儲存過程儲存過程Oracle
- 遞迴儲存過程中使用cursor遞迴儲存過程
- mssql 儲存過程呼叫另一個儲存過程中的結果的方法分享SQL儲存過程
- 在遠端和本地儲存過程間傳遞陣列[zt]儲存過程陣列
- 儲存過程與函式儲存過程函式
- Keras中Mask的傳遞過程Keras
- shuffle過程中的資訊傳遞
- Sqlserver中的儲存過程SQLServer儲存過程
- PB中呼叫儲存過程儲存過程
- 儲存過程中拼接字串儲存過程字串
- java中呼叫儲存過程Java儲存過程
- mysql儲存日期使用什麼型別MySql型別
- PL/SQL 中的儲存過程與函式SQL儲存過程函式
- SQL總結(五)儲存過程SQL儲存過程
- 儲存過程中巢狀儲存過程的變數執行方式儲存過程巢狀變數
- 儲存過程結果進行查詢 select 存過過程儲存過程
- MySQL儲存過程詳解 mysql 儲存過程MySql儲存過程
- 儲存過程與許可權儲存過程
- mySql 儲存過程與函式MySql儲存過程函式
- oracle父儲存過程呼叫子儲存過程procedure與輸出引數Oracle儲存過程
- 儲存過程儲存過程
- jsp中呼叫儲存過程JS儲存過程