在SQL中使用convert函式進行日期的查詢

2021-04-17 03:19:08 字數 697 閱讀 4539

曾經遇到這樣的情況,在的meeting表中有publishtime(datetime,8)字段,用來儲存乙個開會時間,在存入時由於要指明開會具體時間,故格式為yyyy-mm-ddhh:mm:ss,而我們

查詢時是通過yyyy-mm-dd來進行的,即

查詢某一天的所有會議資訊,這樣如果通過select*frommeetingwherepublishtime=@publishtime(引數@publishtime為yyyy-mm-dd格式)語句進行

查詢將無法得到正確結果,比如我們要

查詢2023年12月1日的會議資訊,在輸入2004-12-01時就不能得到

查詢結果,而這種

查詢又不能要求輸入具體的hh:mm:ss.

此時我們需要使用

convert函式,它可以將一種資料型別的表示式轉換為另一種資料型別的表示式.此處我們先將資料庫內的datetime型別轉換為char型別,由於輸入的引數是10位的,所以寫成

select*frommeetingwhere

convert(varchar(10),publishtime,121))=@publishtime,這樣在

查詢時資料庫得到引數後先自動將資料庫內的資訊轉換為yyyy-mm-dd格式的10位字元,只要與引數相同即可返回

查詢結果.而

convert中的121是指將datetime型別轉換為char型別時獲得包括世紀位數的4位年份

在SQL中使用convert函式進行日期的查詢

現在資料庫users表中有這個joindate欄位,datetime型別 有幾個資料比如2005 07 30 2005 07 20 然後查詢joindate欄位 select from users where joindate like 2005 可以正常顯示 可是當查詢 select from u...

在SQL中使用convert函式進行日期的查詢

曾經遇到這樣的情況 在資料庫的 meeting 表中有publishtime datetime,8 字段,用來儲存乙個開會時間 在存入時由於要指明開會具體時間 故格式為 yyyy mm dd hh mm ss,而我們查詢時是通過 yyyy mm dd 來進行的 即查詢某一天的所有會議資訊 這樣如果通...

在SQL中使用convert函式進行日期的查詢

曾經遇到這樣的情況,在資料庫的meeting表中有publishtime datetime,8 字段,用來儲存乙個開會時間,在存入時由於要指明開會具體時間,故格式為yyyy mm dd hh mm ss,而我們查詢時是通過yyyy mm dd來進行的,即查詢某一天的所有會議資訊,這樣如果通過sele...