sql server中字串型別的日期如何比較大小

2021-04-20 11:36:29 字數 858 閱讀 3379

如果在資料庫(sql)中將儲存日期的字段的資料型別設定為varchar,而你又需要對這個日期和另外乙個日期進行比較,那麼該怎麼辦呢?

第一種方法很容易想到,就是純粹地利用字串來比較大小,比如有乙個欄位為adddate,其資料型別為varchar,要比較這個日期是不是大於某個日期,比如"2006-12-23",那麼可以直接寫:

where adddate>'2006-12-23',這中方法很直觀,當然也需要在格式上有所規範,比如,如果日期是2023年3月3日,就必須將日期儲存為2006-03-03,否則比較的時候容易出錯。

第二種方法則可以利用sql提供的日期轉換函式了。

convert ([ length ], [, style])

1)data_type為sql server系統定義的資料型別,使用者自定義的資料型別不能在此使用。

2)length用於指定資料的長度,預設值為30。

3)用convert() 函式的style 選項能以不同的格式顯示日期和時間。style 是將datatime 和smalldatetime 資料轉換為字串時所選用的由sql server 系統提供的轉換樣式編號,不同的樣式編號有不同的輸出格式。

上圖中getdate()函式是以datetime 的預設格式返回系統當前的日期和時間 。

如果用這種方法來判斷某乙個字段的話,則存入的日期欄位的字串格式只要是能讓sql server完成對日期的轉換就可以了,而不一定要像第一種方法中的那樣嚴格。

還是說adddate欄位,比如要比較它是否大於當前的日期,就可以這樣寫:

where (convert(varchar, adddate) >= convert(varchar, getdate()))

個人認為第二種方法更加保險一些。

SqlServer中字串和日期型別的轉換

sql server date 函式 convert 函式是把日期轉換為新資料型別的通用函式。convert 函式可以用不同的格式顯示日期 時間資料。convert data type length data to be converted,style data type length 規定目標資料...

redis中字串型別

字串型別是redis中最基本的資料型別,它能儲存任何形式的字串,包括二進位制資料。你可以用其儲存使用者的手機號,郵箱,json化後的物件甚至是。在ifuchuan型別中鍵允許儲存的資料的最大容量是512mb。字串型別是其它4種資料型別的基礎,其他資料型別和字串型別的差別從某種角度來說只是組織字串的形...

mysql字串型別 mysql 字串型別

字串型別 字串型別指char varchar binary varbinary blob text enum和set。該節描述了這些型別如何工作以及如何在查詢中使用這些型別。型別大小用途 char0 255位元組定長字串 varchar0 65535 位元組變長字串 tinyblob0 255位元組...