现在数据库里的时间是以字符串的形式存储的,如:"2009-05-12 08:24:15" 。我要找到在给定两个时间短内的所有数据,怎么写SQL语句啊?

解决方案 »

  1.   

    举例:between to_date('2009-05-12 08:24:15','yyyy-mm-dd hh24:mi:ss') and
    to_date('2009-07-12 08:24:15','yyyy-mm-dd hh24:mi:ss')
      

  2.   


    to_date()就是将字符类型转化成时间类型
      

  3.   

    where to_date(字段名,'...') between to_date(....) and to_date(....)
      

  4.   

    可以使用to_date('2009-07-30 12:06:22','yyyy-mm-dd hh24:mi:ss'), 还可以建立to_date的索引,提高该字段条件查询的性能。
      

  5.   

         数据库里的数据不是我写的,是由不同的模块写进来的,里面的日期有的是
    "2009-05-12 08:03:40.484375+00:00",这种转换to_date的第二个参数用什么?
      

  6.   


    "2009-05-12 08:03:40.484375+00:00" 应该是timestamp转换来的,但后面的+00:00就不知道了;
    to_timestamp('2009-05-12 08:03:40.484375','yyyy-mm-dd hh24:mi:ss ff');
    如果字符串前面的日期,小时部分规范,都是('yyyy-mm-dd hh24:mi:ss')格式的话,
    可以把前半部分截取了 to_date()。