现在我写一个查询的程序,对数据库中的数据按照时间段做筛选,数据库中日期与时间十分开存储的且均为string型(是通过另外一个程序写进去的),date字段里面内容不是标准的yyyy-mm-dd格式,比如2005年8月1号是2005-8-1,时间字段也不是,比如9点20是9:20,而不是09:20,请问该如何写这个查询程序阿,我快郁闷死了

解决方案 »

  1.   

    我用的是sql数据库,有人说convert之后再做查询,可是我怎么页实现不了,在查询分析器里面都搞不定
      

  2.   

    转换一下,如果格式默认.直接用StrtoDate或StrtoDateTime函数转换.
    如你的机子上的日期格式比较特殊,则可用Copy函数截取String字符串
    后组合成日期格式.
    或者你直接在控制面板中将日期格式转换成你所需要的yyyy-mm-dd格
    式便可以了.另:将日期或时间转换成你所需要的字符串可用FormatDateTime函数来转换.
      

  3.   

    str:='((testDate>'''+FormatDateTime('yyyy-mm-dd',DateTimePicker1.Date)+''') or((testDate='''+FormatDateTime('yyyy-mm-dd',DateTimePicker1.Date)+''')and(testTime>='''+FormatDateTime('hh:mm',DateTimePicker2.Time)+''')))and((testDate<'''+FormatDateTime('yyyy-mm-dd',DateTimePicker3.Date)+''')or((testDate='''+FormatDateTime('yyyy-mm-dd',DateTimePicker3.Date)+''')and(testTime<='''+FormatDateTime('hh:mm',DateTimePicker4.Time)+''')))';
    这是我开始做的一个查询,把它作为标准日期格式的时候写的,不知道应该怎么改呢,因为它并不是所有的日期都是2005-8-1形式的,象2005-12-12就是和标准日期格式一样的阿,截取也不知道怎么截阿
    希望gg给出详细的解答,数据库里的时间格式是另一个程序写进来的,没办法改阿