oracle中怎样用sql语句怎样将2009-1-1转换成2009-01-01?

来源:百度知道 编辑:UC知道 时间:2024/06/07 14:47:21
表中的时间原来是分三个字段保存的:year,month,day 现在想吧这三个字段拼成一个字段,因为以前的月份存的是1而不是01,所以现在拼出来的时间格式就是2009-1-1,但想要2009-01-01格式的 该怎么做?
这是我写的sql,但不能解决问题 请高手指教~~~
select to_date((t.year||'-'||t.month||'-'||t.day),'yyyy-mm-dd') as x from abc t order by x

select to_char(to_date((t.year||'-'||t.month||'-'||t.day),'yyyy-mm-dd','yyyy-mm-dd','nls_date_language=american') as x from abc t order by x;

**************
类似如下:
**************

[TEST@ORA1] SQL>select to_char(to_date('2009-1-1','yyyy-mm-dd'),'yyyy-mm-dd','nls_date_language=american') as x from dual;

X
----------
2009-01-01

Select to_date(to_char(t.year,'0000')||'-'||to_char(t.month,'00')||'-'||to_char(t.day,'00'),'yyyy-mm-dd') as x from abc t order by x

以上,希望对你有所帮助!

select to_char(to_date('t.year||'-'||t.month||'-'||t.day'),'yyyy-MM-dd') as x from abc t order by x ;