MYSQL /SQL 查询 日期

在开发中,会经常碰到要进行以日期为条件进行查询的情况,可以用以下方法:

dm.getScrollData(UserOrder.class," TO_DAYS(?)- TO_DAYS(o.createTime)=0 and o.isBook = ?  and o.status = ? and o.isAdd = ? ......

mysql

TO_DAYS()   该方法返回时间的天数   用该方法就可以 查出  相差多少天    


sql

datediff(day,o.productDate,?)= 0


和mysql差不多~都是同样的兜里,不过参数day,可以换成month


下面附上一个经典例子(sqlserver):

现有一张表名为 "Record "时间列名为 Times 类型是   "DATETIME 2012-10-1 12:00:00"
现在查询开始日期至结束日期内的 周一至周五,早上八点半至中午十二点,然后下午十二点半至晚上五点的记录,
比如我查询 2010-1-1 00:00:00 至 2011-1-1 00:00:00 日期内 所有周一至周五 ,早上八点半至中午十二点,然后下午十二点半至晚上五点的记录
这样:
SELECT * FROM Record  WHERE 
convert(varchar(10),Times,120)  BETWEEN '2010-01-01' and '2010-12-31'    //时间在2010-01-01    2010-12-31 日期段
AND DatePart('w',Times) BETWEEN 2 AND 6        //时间在星期一到星期五
AND (                //时间在8:30-12:00  或者  12:30-17:00
    CONVERT(varchar(8), Times, 8)  BETWEEN '08:30:00' and '12:00:00' 
     or  
    CONVERT(varchar(8), Times, 8)  BETWEEN '12:30:00' and '17:00:00'
    )                         

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值