oracle中如何将某时间转换为给定时区对应的时间?
eg:
time: 2008-10-5 17:55:54
time_zoen:+0300

解决方案 »

  1.   

    SQL> select (timestamp '2010-01-27 01:59:59' at time zone 'CST') at time zone 'GMT' from dual; 
     
    (TIMESTAMP'2010-01-2701:59:59'
    -------------------------------------------------
    26-JAN-10 05.59.59.000000000 PM GMT
      

  2.   

    网上找来的,一直没用到过时区转换。借花献佛,时区转换函数。
    SQL> create or replace function my_new_time
      2     (p_dwtz timestamp with time zone,
      3      p_tz VARCHAR2)
      4  return date
      5  IS
      6  BEGIN
      7     return cast(p_dwtz at time zone p_tz as date);
      8  END my_new_time;
      9  /函数已创建。SQL> SELECT my_new_time(TIMESTAMP'2008-10-5 17:55:54','+03:00') newtime FROM dua
    l;NEWTIME
    --------------
    05-10月-08SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';会话已更改。SQL> SELECT my_new_time(TIMESTAMP'2008-10-5 17:55:54','+03:00') newtime FROM dua
    l;NEWTIME
    -------------------
    2008-10-05 12:55:54SQL>
      

  3.   

    这样写自动会处理夏令时,冬令时吗?
    这个方法是将什么时间转为什么时间啊?
    我现在是知道某地方a的时间和a所在时区,比如‘2010-2-1 14:22:30’在时区‘+03:00'
    知道另外一个地方b的时区,比如’+08:00‘
    现在要将a的时间转为b对应的时间怎么转?
      

  4.   

    shiyiwan在不?回答下问题啊,谢谢~~
      

  5.   

    知道某地方a的时间和a所在时区,比如‘2010-2-1 14:22:30’在时区‘+03:00' 
    知道另外一个地方b的时区,比如’+08:00‘ 
    现在要将a的时间转为b对应的时间怎么转?
    哪位高手帮忙写下,多谢