sql server中對日期字段值的比較

2021-04-16 09:54:16 字數 1873 閱讀 8384

本文**:http://www.cnblogs.com/feison/articles/166981.html

sql server中對日期欄位的比較方式有多種,介紹幾種常用的方式:

用northwind庫中的employees表作為用例表。

1.between...and語句的使用:

說明:between...and用於指定測試範圍

看以下例項:

執行sql語句「select hiredate from employees」顯示結果如下:

hiredate

1992-05-01 00:00:00.000

1992-08-14 00:00:00.000

1992-04-01 00:00:00.000

1993-05-03 00:00:00.000

1993-10-17 00:00:00.000

1993-10-17 00:00:00.000

1994-01-02 00:00:00.000

1994-03-05 00:00:00.000

1994-11-15 00:00:00.000

從以上結果集中搜尋出hiredate在"1993-10-17"到"1994-01-02"的記錄,則sql語句如下:

select hiredate

from employees

where hiredate between cast('1993-10-17' as datetime) and cast('1994-01-02' as datetime)

執行該語句後結果如下:

hiredate

1993-10-17 00:00:00.000

1993-10-17 00:00:00.000

1994-01-02 00:00:00.000

以上sql語句中出現between...and和cast,其中cast是型別轉換函式:在該例中將字串轉換成日期型值.

在where中用between...and把"1993-10-17"到"1994-01-02"的記錄搜尋出來.

2.兩個日期值的比較大小可以用< <= > >=運算子,和datediff函式

datediff函式:datediff ( datepart , startdate , enddate )

datepart的取值可以是year,quarter,month,dayofyear,day,week,hour,minute,second,millisecond

startdate 是從 enddate 減去。如果 startdate 比 enddate 晚,返回負值。

看以下例項:

搜尋hiredate的值在"1993-05-03"後的記錄,該sql語句如下:

select hiredate

from employees

where datediff(day,cast('1993-05-03' as datetime),hiredate) >0

執行該語句後結果如下:

hiredate

1993-10-17 00:00:00.000

1993-10-17 00:00:00.000

1994-01-02 00:00:00.000

1994-03-05 00:00:00.000

1994-11-15 00:00:00.000

因此datediff(day,cast('1993-05-03' as datetime),hiredate)是把hiredate的值按"day"減去cast('1993-05-03' as datetime)

的值.通過判定相減後值的正負來判定日期的先後

袁華慧 編寫

mysql對日期的操作 MySql對日期的操作

1 計算倆個日期之間所差的天數 2 計算日期是這週的星期幾 select dayofweek 2018 09 18 1.因為外國一般都是把星期天認為是一周的開始,所以用這種方法一般都得減去一天才是這週的星期幾 2.這種方法是直接獲取當天是週幾 s,s 兩位數字形式的秒 00,01,59 i 兩位數字...

Android中對日期進行排序

最近在專案中需要將讀取的資料按照時間的降序進行排序。具體的步驟如下 1.讀取資料,存入list中 2.取出資料中的時間戳,由string轉換成date 3.使用氣泡排序對list中元素按照date進行排序 具體 如下 將list按照時間倒序排列 suppresslint dateformat pri...

sqlite中對日期的操作

在android中使用sqlite時,日期處理比較特殊,網上找了很多種方法,試驗出一種相對來說比較合適的 把日期型別作為integer建表,在插入資料庫時,用new date gettime 存入,取出時,再轉為date型別date date new date cursor.getlong i 取某...