0
votes

Cast (actuel_timettamp en tant que temps)

J'essaie de travailler avec des horodatages et de manipuler les données d'entre eux afin que je puisse mesurer différentes choses dans notre base de données.

J'ai actuellement une colonne qui contient une "date" mais contient en fait un timbre entier "DD / Mm / aaaa HH24: MI: ss '

Je veux pouvoir saisir toutes les entrées où "DTNE" entre "09:00" et "09:15" n'ont pas été en mesure de le jeter Correctement.

Si je devais sortir la colonne sans une conversion, cela ressemblerait à ce xxx

sortie: 24 / Jan / 19

Si je devais le convertir en _char, xxx

sortie: 24/01/2019 07:10:52

Je veux pouvoir pouvoir être capable Prendre ce DTNE3 et trouver des entrées entre Times mais moulée et convertir en temps ne fonctionne pas.

Ceci est mon option de travail, mais elle génère la date toujours et je ne veux pas avoir à spécifier la date afin de pouvoir spécifier la date. Soyez coulé à n'importe quel jour de la semaine. xxx

sortie: 24/01/2019 09:00:01


1 commentaires

entre est inclusif; Voulez-vous vraiment inclure exactement 09:15:00 ou seulement jusqu'à 09: 14: 59.999 ...? Ce dernier semble plus probable - et c'est ce que la deuxième approche de GMB avec extrait fera, à cause du << / code>.


3 Réponses :


3
votes

Actuellement, j'ai une colonne qui contient une "date" mais contient en fait un timbre entier 'jj / mm / yyyy HH24: MI: SS'

C'est ce que Oracle Date DataType fait: stocker une date et l'heure (sans fraction secondaire, qui appartiennent aux fichiers de données horodatapes . Il n'y a pas de format spécifique à Oracle pour la date de la date (sans temps).

Pour filtrer à l'heure de la journée, vous pouvez utiliser Le to_char () fonction Pour convertir votre date à une chaîne qui représente son temps et que Vous pouvez comparer: xxx

Vous pouvez également couler la date à un horodatage et utilisez L'extrait () fonction : xxx


0 commentaires

1
votes

oracle a date et horodatamp Types de données; Les deux ont tous les deux année, jour, jour, heure, minute, deuxième composants ( horodatage a également des secondes fractionnaires). Oracle n'a pas de type type .

à la place, utilisez trunc () pour tronquer le composant TIME à minuit et ajouter un littéral d'intervalle: < Pré> xxx


3 commentaires

Merci pour la réponse, je vais essayer cette méthode et voir ce qui se passe.


Je saisis un moyen d'accéder à l'heure des données si je voulais vérifier si une "heure de début" et "TIME TIME" est tombée entre "09h00" et "09:15" Comment puis-je faire cela.


@DavidZammit vient de remplacer DTNE avec start_time , puis ajoutez un duplicata entre clause pour end_time .



0
votes
and ia.DTIME1 not between to_date('&&S_DATE 08:50:00', 'DD/MM/YYYY HH24:MI:SS') and to_date('&&S_DATE 09:20:00', 'DD/MM/YYYY HH24:MI:SS')               
                and ia.DTIME1 not between to_date('&&S_DATE 11:50:00', 'DD/MM/YYYY HH24:MI:SS') and to_date('&&S_DATE 12:40:00', 'DD/MM/YYYY HH24:MI:SS') 
                and ia.DTIME3 not between to_date('&&S_DATE 08:50:00', 'DD/MM/YYYY HH24:MI:SS') and to_date('&&S_DATE 09:20:00', 'DD/MM/YYYY HH24:MI:SS')               
                and ia.DTIME3 not between to_date('&&S_DATE 11:50:00', 'DD/MM/YYYY HH24:MI:SS') and to_date('&&S_DATE 12:40:00', 'DD/MM/YYYY HH24:MI:SS')
i was trying to do this way however i noticed if i have a start time of 08:30 and a finish time of 09:30 then it falls between 09:00 and 09:15 so i want to exclude it from the table. the current WHERE clause im using is quite specific and will only exclude if the timestamp contains the values specified.Really it would want to read "DTIME1 to DTIME3 not between 09:00 and 09:15"

2 commentaires

Il suffit de revenir au clause, je vous ai fourni: où non (extrait (heure d'ia.dtime3) = 9 et extrait (minute d'ia.dtime3) <15) . PS: Cette réponse de votre part aurait dû être affichée comme édition de votre question ou un commentaire sur d'autres réponses.


Merci pour vos commentaires, je vais jeter un coup d'œil et voir comment cela fonctionne.