2012-06-19 3 views
0

Je suis en train d'extraire la requête suivante:sortie html plsql - date non appropriée

select 
'<tr><td>'||column1||'</td>', 
'<td>'||column2||'</td>', 
'<td>'||column3||'</td></tr>' 
from table 

Dans ce qui précède, colonne3 est un champ de date. Lorsque la sortie est imprimée, elle ignore la partie temps. Par exemple:

If columns 3 output is : 5/25/2011 3:03:17 AM 
The above query returns : <tr><td>column1</td><td>column2</td><td>**25-JUN-11**</td></tr> 

J'ai essayé to_date (colonne3, 'aaaa/mm/jj HH24: MI: SS') et aussi, la requête normale imprime le temps

select 
column1, 
column2, 
column3, 
from table 

colonnes 3 impressions temps . Toute aide est appréciée.

EDIT: J'utilise Oracle 10g. J'ai aussi essayé dans Oracle 9i

Répondre

5

Ne comptez pas sur les conversions implicites, utilisez TO_CHAR pour afficher une date to your liking:

select '<tr><td>'||column1||'</td>', 
     '<td>'||column2||'</td>', 
     '<td>'||to_char(column3, 'dd/mm/yyyy hh24:mi:ss')||'</td></tr>' 
    from table 
+3

+1 pour « * Ne vous fiez pas sur les conversions implicites * » –

+0

parfait! merci @Vincent ça a marché –

1

TO_DATE fait exactement ce qu'il est censé faire, les fournitures de masque de le formater avec le le format de son entrée principale est en sorte qu'il peut le transformer en une date. Le masque de format n'est pas utilisé pour définir la sortie mais l'entrée. Ce que vous devez utiliser à la place est TO_CHAR

TO_CHAR(column3,'yyyy/mm/dd HH24:MI:SS')