收录日期:2018/09/20 15:47:28 时间:2016/05/23 01:21:06 标签:基础和管理
问题很简单,
我每次向数据库中插入记录时用的sysdate取系统时间来保存这条记录的插入时间,

这时没有什么问题,一切正常

但是当我在查询时,却出现问题

比如:我插入记录的日期字段值为2003-12-14 20:12:12,当我查询时,程序用户界面上是  “入库时间:等于 2003-12-14, 这时间我查询出来的却没有这条记录

sql 语句如下

 select f_typeid from t_kbcontent
 where f_date = to_date('2003-12-14', 'YYYY-MM-DD')

我如何这条sql来才符合我的业务需求呢
(要查询2003-12-14日这天的所有入库单据)
高手举手之劳,帮一下
帮我呀
快来帮我呀,谢谢啦
select f_typeid 
from t_kbcontent
where to_date(f_date,'yyyy-mm-dd') = to_date('2003-12-14', 'YYYY-MM-DD')
同意楼上的。
你插入的记录是有时间的,但是to_date('2003-12-14', 'YYYY-MM-DD')只是一个日期,相当于零点零分零秒,这样比较当然是不等。
解决的思想就是用chanet(牧师)的方法,只取字段的日期进行比较,但是chanet(牧师)可能没注意,应该用to_char,而不是to_date,因为你的f_date应该是date类型的字段。
select f_typeid from t_kbcontent
where to_char(f_date,'yyyy-mm-dd') = '2003-12-14'
up
应该给mosaic(影子) 分了。
我这个效率可能差些
select f_typeid from t_kbcontent
where f_date>=to_date('2003-12-14', 'YYYY-MM-DD') and 
f_date<to_date('2003-12-15', 'YYYY-MM-DD')

试一下这个吧:
select f_typeid from t_kbcontent where TO_DATE(TO_CHAR(f_date,'YYYY-MM-DD'),'YYYY-MM-DD') = TO_DATE('2003-12-15','YYYY-MM-DD')