2009-10-12 119 views
0

iam困惑。 Iam试图从oracle表读取值,格式为:timestamp(6)。Oracle日期问题

以我PHP脚本即时通讯设置DATEFORMAT用:

​​

在第2机即时recieving此字符串作为值(至极是正确的对我来说): [ “TIME_INSERT”] =>串(24 ) “07年10月5日14:20:05,000000”

在其中相同的脚本运行一个Linux机器,它返回: [ “TIME_INSERT”] =>串(28)“05-OCT- 07 02.20.05.000000 PM“

任何想法如何改变?

回答

4

你应该设置会话参数NLS_TIMESTAMP_FORMATNLS_TIMESTAMP_TZ_FORMAT显示时间戳数据,只要你想:

SQL> select systimestamp from dual; 

SYSTIMESTAMP 
---------------------------------------------------- 
12/10/09 12:52:41,462532 +02:00 

SQL> ALTER SESSION SET NLS_TIMESTAMP_TZ_FORMAT = 'dd.mm.rr hh24:mi:ss,ff5'; 

Session altered 

SQL> select systimestamp from dual; 

SYSTIMESTAMP 
-------------------------------------------------------------------------------- 
12.10.09 12:56:36,14023 
+1

我一般在SQL使用TO_CHAR()或绑定到JDBC数据类型。似乎比设置会话参数更好。 – 2009-10-12 11:10:57

+0

...并使用TO_DATE(...)另一种方式以您选择的格式插入值。 – awe 2009-10-12 11:40:53

+0

@WW和敬畏:我同意,我总是主张使用明确的日期转换。 – 2009-10-12 13:04:14