sql server中字串型別的日期如何比較大小
阿新 • • 發佈:2019-02-18
日期資料在Sql Server資料庫中不都是以日期型別儲存的,如果資料庫中儲存日期欄位的資料型別為varchar,而你又需要對這個日期和另外一個日期進行比較,那麼該怎麼辦呢?總結有以下方法
(1)方法一
這個方法很容易想到,就是純粹地利用字串來比較大小,比如有一個欄位為adddate,其資料型別為varchar,要比較這個日期是不是大於某個日期,比如"2016-2-22",那麼可以直接寫:where adddate>'2016-02-22',這種方法很直觀,當然也需要在格式上有所規範,比如,如果日期是2016年2月22日,就必須將日期儲存為2016-02-22,否則比較的時候容易出錯。
(2)方法二
1)data_type為SQL Server系統定義的資料型別,使用者自定義的資料型別不能在此使用。
2)length用於指定資料的長度,預設值為30。
3)用CONVERT() 函式的style 選項能以不同的格式顯示日期和時間。style 是將DATATIME 和SMALLDATETIME 資料轉換為字串時所選用的由SQL Server 系統提供的轉換樣式編號,不同的樣式編號有不同的輸出格式。如果用這種方法來判斷某一個欄位的話,則存入的日期欄位的字串格式只要是能讓sql server完成對日期的轉換就可以了,而不一定要像第一種方法中的那樣嚴格。還是說adddate欄位,比如要比較它是否大於當前的日期,就可以這樣寫:where (CONVERT(varchar, adddate) >= CONVERT(varchar, GETDATE())) 。