1、如SYUO_YMD 为字符字段类型,则 SELECT ORDER_NO FROM SHUKKAH_F WHERE SYUO_YMD = to_char(SYSDATE,'yyyy/mm/dd')-1;2、如SYUO_YMD 为日期字段类型,则: SELECT ORDER_NO FROM SHUKKAH_F WHERE to_char(SYUO_YMD,'yyyy/mm/dd') = to_char(SYSDATE,'yyyy/mm/dd')-1;因为sysdate格式为:'yyyy/mm/dd hh24:mi:ss'
SQL> select to_char(SYSDATE,'yyyy/mm/dd')-1 from dual; select to_char(SYSDATE,'yyyy/mm/dd')-1 from dual * ERROR 位于第 1 行: ORA-01722: 无效数字to_char后是字符型,怎么能做-1操作呢?除非将/去掉。既然syud_ymd是日期型,就用贴主贴中的哪个语句即可。 sysdate - 1是成立的,不存在多空格问题。 贴主发现了什么错误呢????
楼上的楼上,我想这样可以,希望你有收获 SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') time from dual;TIME ------------------- 2004-04-20 13:50:03//小时减1;SQL> select to_char(sysdate,'yyyy-mm-dd')||' '||(to_char(sysdate,'hh24')-1)||'时' time from dual; TIME ----------------------------------------------------- 2004-04-20 12时
日减一 select sysdate - 1 from dual 月减一 select add_months(sysdate,-1) from dua 年减一 select add_months(sysdate,-12) from dua
系统日期格式减一为/sysdate-1,不要有空格,如果是字符型的,
可以to_char(sysdate-1,'YYYYMMDD'),后面的格式你可以参照详细说明进行转换。
SELECT ORDER_NO FROM SHUKKAH_F WHERE SYUO_YMD = to_char(SYSDATE,'yyyy/mm/dd')-1;2、如SYUO_YMD 为日期字段类型,则:
SELECT ORDER_NO FROM SHUKKAH_F
WHERE to_char(SYUO_YMD,'yyyy/mm/dd') = to_char(SYSDATE,'yyyy/mm/dd')-1;因为sysdate格式为:'yyyy/mm/dd hh24:mi:ss'
select to_char(SYSDATE,'yyyy/mm/dd')-1 from dual
*
ERROR 位于第 1 行:
ORA-01722: 无效数字to_char后是字符型,怎么能做-1操作呢?除非将/去掉。既然syud_ymd是日期型,就用贴主贴中的哪个语句即可。
sysdate - 1是成立的,不存在多空格问题。
贴主发现了什么错误呢????
我是嵌入到java中的,在java也没有问题.
SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') time from dual;TIME
-------------------
2004-04-20 13:50:03//小时减1;SQL> select to_char(sysdate,'yyyy-mm-dd')||' '||(to_char(sysdate,'hh24')-1)||'时' time from dual;
TIME
-----------------------------------------------------
2004-04-20 12时
select sysdate - 1 from dual
月减一
select add_months(sysdate,-1) from dua
年减一
select add_months(sysdate,-12) from dua