AntiEarnie
Technical User
I am stumped by this. I have been using a TRUNC statment to nip the fractions off a number and it is not behaving quite right. Some values tend to have the whole number change on instead of just droping everything right of the decmil point. For example see the query using '24-JUN-05 00:25:00' below.
[red] The query's might look a little strange, I have broken the times out of the real querys in order to demonstrate just *what* keeps happening.
[/red]
[blue]
SQL> ED
Wrote file afiedt.buf
1 select
2 (to_date('24-JUN-05 00:20:00','DD-MON-YY HH24:MI:SS')
3 - TO_DATE('29-JUN-05 00:00:00', 'DD-MON-YY HH24:MI:SS'))*24*12 NO_TRUNC,
4 TRUNC((to_date('24-JUN-05 00:20:00','DD-MON-YY HH24:MI:SS')
5 - TO_DATE('29-JUN-05 00:00:00', 'DD-MON-YY HH24:MI:SS'))*24*12) W_TRUNC
6* FROM DUAL
SQL> /
NO_TRUNC W_TRUNC
--------- ---------
-1436 -1436
SQL> ED
Wrote file afiedt.buf
1 select
2 (to_date('24-JUN-05 00:24:00','DD-MON-YY HH24:MI:SS')
3 - TO_DATE('29-JUN-05 00:00:00', 'DD-MON-YY HH24:MI:SS'))*24*12 NO_TRUNC,
4 TRUNC((to_date('24-JUN-05 00:24:00','DD-MON-YY HH24:MI:SS')
5 - TO_DATE('29-JUN-05 00:00:00', 'DD-MON-YY HH24:MI:SS'))*24*12) W_TRUNC
6* FROM DUAL
SQL> /
NO_TRUNC W_TRUNC
--------- ---------
-1435.2 -1435
SQL> ED
Wrote file afiedt.buf
1 select
2 (to_date('24-JUN-05 00:25:00','DD-MON-YY HH24:MI:SS')
3 - TO_DATE('29-JUN-05 00:00:00', 'DD-MON-YY HH24:MI:SS'))*24*12 NO_TRUNC,
4 TRUNC((to_date('24-JUN-05 00:25:00','DD-MON-YY HH24:MI:SS')
5 - TO_DATE('29-JUN-05 00:00:00', 'DD-MON-YY HH24:MI:SS'))*24*12) W_TRUNC
6* FROM DUAL
SQL> /
NO_TRUNC W_TRUNC
--------- ---------
-1435 -1434
SQL> ED
Wrote file afiedt.buf
1 select
2 (to_date('24-JUN-05 00:26:00','DD-MON-YY HH24:MI:SS')
3 - TO_DATE('29-JUN-05 00:00:00', 'DD-MON-YY HH24:MI:SS'))*24*12 NO_TRUNC,
4 TRUNC((to_date('24-JUN-05 00:26:00','DD-MON-YY HH24:MI:SS')
5 - TO_DATE('29-JUN-05 00:00:00', 'DD-MON-YY HH24:MI:SS'))*24*12) W_TRUNC
6* FROM DUAL
SQL> /
NO_TRUNC W_TRUNC
--------- ---------
-1434.8 -1434
SQL> ED
Wrote file afiedt.buf
1 select
2 (to_date('24-JUN-05 00:30:00','DD-MON-YY HH24:MI:SS')
3 - TO_DATE('29-JUN-05 00:00:00', 'DD-MON-YY HH24:MI:SS'))*24*12 NO_TRUNC,
4 TRUNC((to_date('24-JUN-05 00:30:00','DD-MON-YY HH24:MI:SS')
5 - TO_DATE('29-JUN-05 00:00:00', 'DD-MON-YY HH24:MI:SS'))*24*12) W_TRUNC
6* FROM DUAL
SQL> /
NO_TRUNC W_TRUNC
--------- ---------
-1434 -1434
[/blue]
Can anyone give me an idea of how to get around this? Or another way to just drop the fraction off the number?
[red] The query's might look a little strange, I have broken the times out of the real querys in order to demonstrate just *what* keeps happening.
[/red]
[blue]
SQL> ED
Wrote file afiedt.buf
1 select
2 (to_date('24-JUN-05 00:20:00','DD-MON-YY HH24:MI:SS')
3 - TO_DATE('29-JUN-05 00:00:00', 'DD-MON-YY HH24:MI:SS'))*24*12 NO_TRUNC,
4 TRUNC((to_date('24-JUN-05 00:20:00','DD-MON-YY HH24:MI:SS')
5 - TO_DATE('29-JUN-05 00:00:00', 'DD-MON-YY HH24:MI:SS'))*24*12) W_TRUNC
6* FROM DUAL
SQL> /
NO_TRUNC W_TRUNC
--------- ---------
-1436 -1436
SQL> ED
Wrote file afiedt.buf
1 select
2 (to_date('24-JUN-05 00:24:00','DD-MON-YY HH24:MI:SS')
3 - TO_DATE('29-JUN-05 00:00:00', 'DD-MON-YY HH24:MI:SS'))*24*12 NO_TRUNC,
4 TRUNC((to_date('24-JUN-05 00:24:00','DD-MON-YY HH24:MI:SS')
5 - TO_DATE('29-JUN-05 00:00:00', 'DD-MON-YY HH24:MI:SS'))*24*12) W_TRUNC
6* FROM DUAL
SQL> /
NO_TRUNC W_TRUNC
--------- ---------
-1435.2 -1435
SQL> ED
Wrote file afiedt.buf
1 select
2 (to_date('24-JUN-05 00:25:00','DD-MON-YY HH24:MI:SS')
3 - TO_DATE('29-JUN-05 00:00:00', 'DD-MON-YY HH24:MI:SS'))*24*12 NO_TRUNC,
4 TRUNC((to_date('24-JUN-05 00:25:00','DD-MON-YY HH24:MI:SS')
5 - TO_DATE('29-JUN-05 00:00:00', 'DD-MON-YY HH24:MI:SS'))*24*12) W_TRUNC
6* FROM DUAL
SQL> /
NO_TRUNC W_TRUNC
--------- ---------
-1435 -1434
SQL> ED
Wrote file afiedt.buf
1 select
2 (to_date('24-JUN-05 00:26:00','DD-MON-YY HH24:MI:SS')
3 - TO_DATE('29-JUN-05 00:00:00', 'DD-MON-YY HH24:MI:SS'))*24*12 NO_TRUNC,
4 TRUNC((to_date('24-JUN-05 00:26:00','DD-MON-YY HH24:MI:SS')
5 - TO_DATE('29-JUN-05 00:00:00', 'DD-MON-YY HH24:MI:SS'))*24*12) W_TRUNC
6* FROM DUAL
SQL> /
NO_TRUNC W_TRUNC
--------- ---------
-1434.8 -1434
SQL> ED
Wrote file afiedt.buf
1 select
2 (to_date('24-JUN-05 00:30:00','DD-MON-YY HH24:MI:SS')
3 - TO_DATE('29-JUN-05 00:00:00', 'DD-MON-YY HH24:MI:SS'))*24*12 NO_TRUNC,
4 TRUNC((to_date('24-JUN-05 00:30:00','DD-MON-YY HH24:MI:SS')
5 - TO_DATE('29-JUN-05 00:00:00', 'DD-MON-YY HH24:MI:SS'))*24*12) W_TRUNC
6* FROM DUAL
SQL> /
NO_TRUNC W_TRUNC
--------- ---------
-1434 -1434
[/blue]
Can anyone give me an idea of how to get around this? Or another way to just drop the fraction off the number?