oracle convertir les horodatages à d'autres masques
Comment puis-je convertir ces nombre de colonnes (timestamp, event_dt) à une date ou heure masque?
Je suis en train d'essayer ceci:
select to_char(timestamp,'YYYY-MON-DD HH24:MI:SS'), domain_c, to_char(event_date,'YYYY-MON-DD HH24:MI:SS'), total_reads from TOP_READ_EVENTS where timestamp= to_char(sysdate-2,'yyyymmdd') || '0000'
*
ERROR at line 1:
ORA-01481: invalid number format model
SQL> desc top_read_events;
Name Null? Type
----------------------------------------- -------- ----------------------------
YEAR NUMBER
QUARTER NUMBER
MONTH NUMBER
DAY NUMBER
HOUR NUMBER
TIMESTAMP NUMBER
DOMAIN_C VARCHAR2(255)
EVENT_DT NUMBER
TOTAL_READS NUMBER
select timestamp, domain_c, event_dt, total_reads from TOP_READ_EVENTS where timestamp= to_char(sysdate-2,'yyyymmdd') || '0000'
TIMESTAMP DOMAIN_C EVENT_DT TOTAL_READS
---------- ------------------------------ ------------ -------------
2.0111E+11 b.e.att-mail.com 2.0111E+11 14406
2.0111E+11 bounce.emailinfo2.bestbuy.com 2.0111E+11 14156
2.0111E+11 bounce.bluestatedigital.com 2.0111E+11 13701
2.0111E+11 plentyoffish.com 2.0111E+11 13384
2.0111E+11 mail.classmates.com 2.0111E+11 13281
2.0111E+11 comcast.net 2.0111E+11 13241
2.0111E+11 uniquelistsmail.com 2.0111E+11 13135
2.0111E+11 tankgorilla.com 2.0111E+11 12835
2.0111E+11 frigidphoenix.com 2.0111E+11 12657
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, jamais store date ou timestamp les types de données en quelque chose, mais d'une date ou d'une colonne de type timestamp. Il n'en finit pas de douleur; comme vous êtes la cueillette.
Que votre "timestamps" 11 ordres de grandeur, je vais deviner que vous avez inséré dans le formulaire
yyyymmddhh24mi
, et ils ne sont pas en secondes, depuis une époque indéterminée ou quelque chose comme ça.Si vous voulez convertir, c'est que vous devez d'abord les convertir en un personnage, puis dans une date. Vous n'avez pas réellement besoin d'un timestamp, celles-ci diffèrent de dates seulement dans les fractions de secondes.
Ce serait ressembler à quelque chose comme ce qui suit:
Sur une note de côté jamais appeler une colonne timestamp, date, d'un groupe ou d'un autre mot réservé. Il cause trop de problèmes. Personnellement j'ai l'habitude d'aller pour "tstamp" mais c'est juste une question de préférence personnelle.
Si vous voulez convertir vos "timestamp" dans un personnage, vous pouvez avoir à le convertir en un personnage nouveau.
Les secondes seront toujours
00
que vous n'avez pas ces. Notez que je n'utilise que des explicite nombre de caractères de la date de conversion de caractères. C'est plus évident pour les codeurs qui viendront après vous, ce que vous faites, y compris vous-même 2 ans en bas de la ligne, et il n'y a aucune chance de l'interprète de faire une erreur sur l'intention et la comparaison d'un nombre à un caractère etc.Pour cette raison, je serais certainement changer
where timestamp= to_char(sysdate-2,'yyyymmdd') || '0000'
. Que vous le souhaitez à la date de la comparaison de changer cela en un jour et de cette façon, c'est à diretrunc()
tronque cette à la journée niveau de cette instance.Tout d'abord, l'enregistrement des dates et les horodatages dans les colonnes qui ne sont pas
DATE
ouTIMESTAMP
est une mauvaise modélisation de données. La vie serait beaucoup plus facile si vous avez stocké les données dans les colonnes avec le bon type de données.Deuxièmement, quel est le format des colonnes numériques à l'aide de stocker la date et/ou d'horodatage de données? Vous ne publiez pas un exemple d'une valeur réelle-- tout ce que nous savons, c'est qu'ils sont au nombre de 12 chiffres et commencent par 2011. J'imagine qu'ils sont stockés dans le format YYYYMMDDHH24MI sans secondes, vous aurez besoin de nous dire si cette supposition se trouve être incorrect.
En supposant que supposition est correcte, vous devez convertir le nombre en chaîne de caractères de la chaîne à une date, et la date de retour pour une autre chaîne de caractères dans un format différent. Évidemment, c'est un peu maladroit (et l'une des nombreuses raisons pour stocker des choses dans le bon types de données). Quelque chose comme
Si votre colonnes numériques sont stockés différemment ou il ya des cas où les données ne sont pas stockées dans le format correct, la vie est encore moins agréable.