2 Bug #42173 (TIMESTAMP and INTERVAL query and field functions)
5 $target_dbs = array('oracledb' => true, 'timesten' => false); // test runs on these DBs
6 require(dirname(__FILE__).'/skipif.inc');
11 require(dirname(__FILE__).'/connect.inc');
17 "create table ts_test (
20 c3 TIMESTAMP WITH TIME ZONE,
21 c4 TIMESTAMP (2) WITH TIME ZONE,
22 c5 TIMESTAMP WITH LOCAL TIME ZONE,
23 c6 INTERVAL YEAR TO MONTH,
24 c7 INTERVAL YEAR(2) TO MONTH,
25 c8 INTERVAL DAY TO SECOND,
26 c9 INTERVAL DAY(2) TO SECOND(3)
29 "insert into ts_test values (
30 timestamp'1999-01-03 10:00:00.123',
31 timestamp'1999-01-04 10:00:00.123456',
32 timestamp'1999-01-05 10:00:00.123456+1:0',
33 timestamp'1999-01-06 10:00:00.123456-1:0',
34 timestamp'1999-01-06 10:00:00.123456-1:0',
35 interval'1-2' year to month,
36 interval'10-4' year to month,
37 interval'1 2:20:20.123' day to second,
38 interval'1 2:20:20.12345' day to second)");
40 foreach ($stmts as $sql) {
41 $s = oci_parse($c, $sql);
42 $r = @oci_execute($s);
45 $s = oci_parse($c, "select * from ts_test");
47 $row = oci_fetch_array($s, OCI_ASSOC);
50 foreach ($row as $name => $field) {
51 echo "\nColumn $name\n";
52 var_dump(oci_field_is_null($s, $name));
53 var_dump(oci_field_name($s, $name));
54 var_dump(oci_field_type($s, $name));
55 var_dump(oci_field_type_raw($s, $name));
56 var_dump(oci_field_scale($s, $name));
57 var_dump(oci_field_precision($s, $name));
58 var_dump(oci_field_size($s, $name));
63 $s = oci_parse($c, "drop table ts_test");
64 $r = @oci_execute($s);
72 string(28) "03-JAN-99 10.00.00.123000 AM"
74 string(27) "04-JAN-99 10.00.00.12346 AM"
76 string(35) "05-JAN-99 10.00.00.123456 AM +01:00"
78 string(31) "06-JAN-99 10.00.00.12 AM -01:00"
86 string(19) "+01 02:20:20.123000"
88 string(16) "+01 02:20:20.123"
103 string(9) "TIMESTAMP"
112 string(23) "TIMESTAMP WITH TIMEZONE"
121 string(23) "TIMESTAMP WITH TIMEZONE"
130 string(29) "TIMESTAMP WITH LOCAL TIMEZONE"
139 string(22) "INTERVAL YEAR TO MONTH"
148 string(22) "INTERVAL YEAR TO MONTH"
157 string(22) "INTERVAL DAY TO SECOND"
166 string(22) "INTERVAL DAY TO SECOND"