Comment obtenir un jour à l'avance une date donnée?
Supposons que j'ai une date 2010-07-29. Maintenant, je voudrais vérifier le résultat d'une journée à l'avance. comment faire
Par exemple,
SELECT *
from table
where date = date("2010-07-29")
Comment faire un jour avant sans changer la chaîne "2010-07-29"?
J'ai cherché et obtenir des suggestions de web et j'ai essayé
SELECT *
from table
where date = (date("2010-07-29") - 1 Day)
mais a échoué.
Qui système de base de données utilisez-vous - Access, SQL Server, Oracle, MySQL, ..?
vous êtes à la recherche pour le jour 2010-07-30 ou 2010-07-28?
spécifier SGBDR s'il vous plaît?
vous êtes à la recherche pour le jour 2010-07-30 ou 2010-07-28?
spécifier SGBDR s'il vous plaît?
OriginalL'auteur skydoor | 2010-07-29
Vous devez vous connecter pour publier un commentaire.
MySQL
Changement DATE_SUB à DATE_ADD si vous souhaitez ajouter une journée (et de inverser la ENTRE les paramètres).
SQL Server
Oracle
J'ai utilisé parce que les
date
colonne est probable DATETIME (sur MySQL & SQL Server, vs DATE de Oracle), ce qui inclut le temps portion de manière égale signifie que la valeur est égale exactement. Ces requêtes vous donner l'espace d'une journée.DATE('2010-07-29', '-1 day')
.Si t.date de date uniquement / mis à minuit, ces requêtes seront de retour des données pour les 28 et 29 juillet 2010. Bien sûr, si Skydoor nous a dit un peu plus sur le problème...
Bannister: Seulement 29 juillet, 2010 entrées à 00:00:00 serait incluse rien au-delà.
dans votre requête Oracle, remplacer
TABLE T
avec(select TO_DATE('2010-07-29', 'YYYY-MM-DD') - (ROWNUM-1) "date" from dual CONNECT BY LEVEL <= 2) T
(et le double-quote t.date; date est un mot réservé dans Oracle.) Vous devriez voir des lignes pour les 28 et 29 juillet 2010.Bannister: Thx, mais que-est que la requête est cohérente avec les autres exemples.
OriginalL'auteur OMG Ponies
Si vous utilisez Oracle, vous pouvez utiliser les opérateurs + et - pour ajouter un nombre de jours à une date.
http://psoug.org/reference/date_func.html
Exemple:
Donnera la date du lendemain.
Si vous êtes pas de l'utilisation d'Oracle, s'il vous plaît dites utilisez ce que vous utilisez afin que nous puissions donner de meilleures réponses. Ce genre de chose dépend de la base de données que vous utilisez. Il ne sera PAS le même dans les différentes bases de données.
OriginalL'auteur FrustratedWithFormsDesigner
Dépend de la date des Fonctions disponibles sur le SGBDR
Pour Mysql, vous pouvez essayer:
OriginalL'auteur Andreas
Si vous utilisez MSSQL, vous êtes à la recherche pour DateAdd() je suis un peu floue sur la syntaxe, mais c'est quelque chose comme:
Modifier: Cette syntaxe doit être correct: il a été mis à jour en réponse à un commentaire.
J'ai peut-être les paramètres spécifiques dans le mauvais ordre, mais qui devrait vous permettre d'y parvenir.
J'ai pensé que j'obtiendrais le cadre de ce mal. Edit à venir.
OriginalL'auteur AllenG
En PL SQL :
select sysdate+1 from dual;
OriginalL'auteur user2881604