sqlserver和oracle中對datetime進行條件查詢的一點區別小結

來源:互聯網
上載者:User

首先,看一下sql server,之前我們都通過前台使用者選擇一個起始時間和一個結束時間(以日為最小單位),然後來作為條件進行查詢,如果直接通過”between starttime and endtime”來作為條件的話,發現會自動將”2009-06-17”轉化為” 2009-06-17 00:00:00”,於是如下查詢條件” between ‘2009-06-16' and ‘2009-06-17'”,只能得到16日的資料,17日的資料不能得到,如果想連17日的資料也查到的話,我們可以對使用者選擇時間進行一下處理:可以為其添加詳細的時間條件,如” between ‘2009-06-16 00:00:00' and ‘2009-06-17 23:59:59'”;或者乾脆去巧地將結束時間替換為下一天的日期也可,但是這樣需要我們對遞增日期做一下特殊處理,因為我們可能遇到選擇當月最後一日的情況,詳細的處理這裡就不贅述了。

下面談談oracle資料庫中的處理,同樣是上面兩種方式,但是如果採取精確時間的方式的話,我們需要通過oracle的資料庫時間函數進行處理,相對比較繁瑣,如果直接通過遞增結束日期的方式或許更便捷一些,當然,只能適應所選日期最小單位為“日”的情況。還有一點需要說明的是,oracle中採取的日期文字格式和sql server是不一樣的,一般為”5-6月-09”這樣的形式,這就需要我們將擷取的時間格式做一下中間轉換,否則語句將不能正常執行,當然,我們同樣可以通過資料庫函數來進行處理,但相對比較複雜一些。

其實,有的時候,對很多問題來說,我們可以採取比較正規的方法來處理,但是,如果在需求限定的範圍內有一些雖然有所局限,但可以完全滿足需求的實現方法,我覺得還是可以大膽地區用的,因為我們編程的終極目的終究是:用最簡單的方式達到目的,凡事不能太過死板,這個過程其實也是提高我們對項目需求的理解,最後,就是需要注意我們抄小路必須要迴避的一些問題,千萬不能太過大意哦。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.