zoukankan      html  css  js  c++  java
  • sql server日期字段值的比较

    sql server中对日期字段值的比较 
    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 datetimeand 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 hiredateFROM employeesWHERE datediff(day,cast('1993-05-03' as datetime),hiredate) >0执行该语句后结果如下:hiredate1993-10-17 00:00:00.0001993-10-17 00:00:00.0001994-01-02 00:00:00.0001994-03-05 00:00:00.0001994-11-15 00:00:00.000因此datediff(day,cast('1993-05-03' as datetime),hiredate)是把hiredate的值按"day"减去cast('1993-05-03' as datetime)的值.通过判定相减后值的正负来判定日期的先后

  • 相关阅读:
    ubuntu安装打印机驱动
    clang-format的介绍和使用
    [C++面向对象]-C++成员函数和非成员函数
    [Qt2D绘图]-06QPainter的复合模式&&双缓冲绘图&&绘图中的其他问题
    [Qt2D绘图]-05绘图设备-QPixmap&&QBitmap&&QImage&&QPicture
    [Qt2D绘图]-04绘制文字&&绘制路径
    [Qt2D绘图]-03坐标系统之坐标变换
    [Qt2D绘图]-02坐标系统&&抗锯齿渲染
    [Qt2D绘图]-01Qt2D绘图基本绘制和填充
    [Qt插件]-01Qt插件&&提升部件(自定义控件)
  • 原文地址:https://www.cnblogs.com/furenjian/p/4613058.html
Copyright © 2011-2022 走看看