zoukankan      html  css  js  c++  java
  • sql语句中的时间查询

    一般来说,我们在mysql数据库纪录数据时间时,都会选择datatime类型,这样时间可以精确到秒。但随之而来的一个问题是,当我们要取得某一段时间内的数据内容会有一些时间转换上的麻烦,例如我们要取得2002年3月2日到2003年7月8日的这段时间的内容,我们第一个直觉就是应该将sql写成下面的形式:
    1.   select * from yourdb where sj>='2002-3-2' and sj<= '2003-7-8'(这种格式的比较是采用字符串比较的方式,从左到右 比较的。)

    这样以来,我们取得数据内容就是2002年3月2日0点以后到2003年7月8日0点(也就是7月7号12点之前)之间的内容,这个当然不是我们想要的,所以需要使用mysql的时间函数to_days()来写这个sql:

    2.  select * from yourdb where to_days(sj)>=to_days('2002-3-2') and sj<= to_days('2003-7-8')(此种采用是时间格式的比较方式

    现在,我们所取得就是我们想要的结果了。
    3.   SELECT * FROM t_ads  a WHERE  TO_DAYS(a.endDate) >  TO_DAYS(2013-04-23)(时间没有用单引号扩住, 语法上没有错,但是查询的内容不对
    综述:处理时间的字段的时候 统一用单引号扩住, 之后再用to_days处理一下,即可。(第二中方式)

  • 相关阅读:
    微信用户授权,获取code
    关于swiper在vue中不生效的问题
    ES6-Set 和 Map 数据结构
    Js中caller和callee的区别
    类与对象基础总结--继承,多态
    java 类与对象基础整理
    java 的数据库操作--JDBC
    Socket的长连接和短连接
    java 的底层通信--Socket
    算法--树与递归
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3129940.html
Copyright © 2011-2022 走看看