oracle de la plage de dates
à l'aide d'un Oracle 10g db j'ai une table quelque chose comme ceci:
create table x(
ID NUMBER(10) primary key,
wedding DATE NOT NULL
);
comment puis-je
select * from x where wedding is in june 2008???
Je sais que c'est probablement facile, mais je ne pouvais pas trouver aucune réponse satisfaisante à ce jour.
L'aide est très apprécié.
OriginalL'auteur Hoax | 2010-01-10
Vous devez vous connecter pour publier un commentaire.
Utilisation:
Utilisation de
TO_DATE
construit une date avec un temps de 00:00:00, ce qui nécessite la date de fin de d'être un jour à l'avance, sauf si vous souhaitez utiliser la logique pour corriger la date actuelle à une seconde avant minuit. Non testé:Qui devrait ajouter un jour à 30-Jun-2008, puis de soustraire un second dans l'ordre de retourner une dernière date de
30-Jun-2008 23:59
.Références:
je devrais donc ENTRE le 01 juin et 01 juillet.
En ce qui concerne "l'Utilisation de TO_DATE ..." - je suis d'accord c'est un peu plus compliqué si vous avez le temps et la date. Votre limite supérieure:
TO_DATE('2008-JUL-01', 'YYYY-MON-DD')
peut désormais obtenir des mariages à partir de 2008-JUIL-01 qui n'ont pas le temps d'entrer (je présume qu'il n'y a pas de minuit, mariages), de sorte que cette requête peut être inexacte. Vous avez probablement besoin d'élaborer des cas limites et ajouter quelques commentaires sur le temps de part et ENTRE l'opérateur.si vous n'avez pas le temps de composant au
x.wedding
, puis la première version est fine:TO_DATE('2008-JUN-30', 'YYYY-MON-DD')
. Autre chose, vous devez définir la limite supérieure de2008-JUN-30 23:59:59
. Vérifier TO_DATE de la documentation pour le bon masque.Oracle par défaut de la partie heure à 00:00:00 si elle n'est pas spécifiée, qui était, je pense, de votre point réel. C'est pourquoi j'ai ajouté la logique d'un datetime qui est une seconde avant minuit.
OriginalL'auteur OMG Ponies
C'est ANSI SQL, et pris en charge par oracle à partir de la version 9i
Solution classique avec oracle spécifiques
TO_CHAR()
:(la dernière des solutions a été pris en charge lorsque les dinosaures encore foulé la terre)
wedding
colonne.Aussi, si PLW erreurs sont activées - les deux options, le résultat sera une conversion de type de données d'erreur.
Poneys - oui, vous avez raison. La solution est beaucoup mieux pour la performance. Pas sûr de ce que tu veux dire par PLW erreurs. Avez-vous un pointeur pour moi? TIA
Oracle a ORA erreurs, mais a également une ligne de code supplémentaire de validation/vérification appelé PLW (je ne sais pas ce qu'il représente). Il n'est pas activé par défaut, ce que je comprends. C'est très bon pour corriger les mauvaises habitudes comme l'utilisation de fonctions sur des colonnes/etc.
J'ai essayé de trouver un lien, mais tout ce que je reçois sont PLW erreur spécificités :/
OriginalL'auteur Roland Bouman