简单的sql语句问题
select ID, FILE_NAME, to_char(UPDATE_DATE,'yyyy-mm-dd') VDATE from UPDATE_VERSION where UPDATE_DATE > to_date('2005-02-02','yyyy-mm-dd')
我希望取出2005-02-02以后的数据,可是为什么2005-02-02当天的数据也被取出来了呢?
问题点数:0、回复次数:10Top
1 楼ORARichard(没钱的日子......)回复于 2005-02-03 11:34:27 得分 0
select ID, FILE_NAME, to_char(UPDATE_DATE,'yyyy-mm-dd') VDATE from UPDATE_VERSION where trunc(UPDATE_DATE) > to_date('2005-02-02','yyyy-mm-dd')
Top
2 楼bobfang(匆匆过客)回复于 2005-02-03 11:41:31 得分 0
select ID, FILE_NAME, to_char(UPDATE_DATE,'yyyy-mm-dd hh24:mi:ss') VDATE from UPDATE_VERSION where UPDATE_DATE > to_date('2005-02-02','yyyy-mm-dd')
看看update的值是否包含了时间。要想取2005-2-2之后的,可以where UPDATE_DATE >= to_date('2005-02-03','yyyy-mm-dd')
Top
3 楼yxxx(_小孬)回复于 2005-02-03 11:42:28 得分 0
嗯,这样比较的话,应该把时间部分除去Top
4 楼yxxx(_小孬)回复于 2005-02-03 11:43:25 得分 0
你要取出2005-02-02以后的数据,就大于2005-02-03咯。
至于原因可能是以零时为比较点吧……Top
5 楼skystar99047(天星)回复于 2005-02-03 11:53:22 得分 0
2005-02-02 比较时以 2005-02-02 00:00:00为准
所以2005-02-02当天的所有时间都大于2005-02-02 00:00:00,自然会被选出来。Top
6 楼Croatia(Croatia)回复于 2005-02-03 13:55:22 得分 0
因为你的时间部分也在比较的范围内。
to_date('2005-02-02','yyyy-mm-dd')
算得是0:0:0,这个是最小的。
当然可以选出来。Top
7 楼szxzwang(不求甚解)回复于 2005-02-03 14:08:09 得分 0
哈哈,oracle中的日期格式是:年月日时分秒,你where 后面 “〉”号两端的日期长度不同
,你需要格式它!Top
8 楼yown(yong)回复于 2005-02-03 14:34:36 得分 0
----
select ID, FILE_NAME, to_char(UPDATE_DATE,'yyyy-mm-dd') VDATE from UPDATE_VERSION where trunc(UPDATE_DATE) > to_date('2005-02-02','yyyy-mm-dd');
Top
9 楼woainin(woainin)回复于 2005-02-03 16:16:17 得分 0
to_char(UPDATE_DATE,'yyyy-mm-dd')>to_date('2005-02-02','yyyy-mm-dd');Top
10 楼xinrong(倩影永存)回复于 2005-02-03 16:21:32 得分 0
trunc(UPDATE_DATE,'dd')>to_date('2005-02-02','yyyy-mm-dd');
Top




