J'ai donc une table indiquée ci-dessous etc. p> Je dispose actuellement d'une règle sous mon relevé de mon article qui se présente tous les jours d'aujourd'hui ( il serait donc 05/07/11 jusqu'à la même date 3 ans plus tard 05/07/14). P> Je voudrais également ajouter une autre règle sous la relevé où il ne montre que des temps (quand La date actuelle est égale à la date du tableau) Deux heures avant l'heure actuelle. P> SO Le 05/07/11 à 19h00 Il devrait indiquer: P> SELECT m.MatchID Manage, m.Date, m.Time, t.TeamCode "Home", b.TeamCode "Away",
g.GroundName "Ground", ( SUBSTRING(u.GivenName,1,1) + '. ' + RTRIM(u.Surname) ) AS Referee,
( SUBSTRING(v.GivenName,1,1) + '. ' + RTRIM(v.Surname) ) AS "Assistant 1",
( SUBSTRING(w.GivenName,1,1) + '. ' + RTRIM(w.Surname) ) AS "Assistant 2",
a.FOfficialID, a.AssessorID, a.RefereeAID, a.AReferee1AID, a.AReferee2AID,
a.FOfficialAID, a.AssessorAID, 'Details' "Details", t.AgeGroupID, r.WetWeatherID
FROM Match m
LEFT OUTER JOIN Appointment a ON m.MatchID=a.MatchID
LEFT OUTER JOIN WetWeather r ON r.MatchID=m.MatchID
INNER JOIN Team t ON m.HomeTeamID=t.TeamID
INNER JOIN Team b ON m.AwayTeamID=b.TeamID
INNER JOIN Ground g ON g.GroundID=m.GroundID
LEFT OUTER JOIN Users u ON u.UserID=a.RefereeID
LEFT OUTER JOIN Users v on v.UserID=a.AReferee1ID
LEFT OUTER JOIN Users w on w.UserID=a.AReferee2ID
WHERE (m.Date BETWEEN '05-Jul-2011' AND '05-Jul-2014')
3 Réponses :
Si vous utilisez les champs de temps et de date de données, vous pouvez comparer simple à la date / heure actuelle
qui ne rapporte que des dates seulement plus grandes qu'aujourd'hui avec seulement les temps plus tard que 10:10, donc des tables ci-dessus, ITD ne ramène rien
Eh bien, vous utilisez où (M.Date entre '05 -Jul-2011 'et '05 -JUL-2014') code> dans votre exemple de travail, pourquoi ne pas simplement l'étendre à l'époque, en passant la date et l'heure calculées (via VB) dans la clause WHERE. Alors, quelle était la question, si vous avez la solution dans votre exemple de travail?
D'accord, je comprends ce que tu tentaits de me dire, mais j'ai déjà essayé cela: "Où (M.Date entre "05 -Jul-2011" et '05 -JUL-2014 ') et M.time> = 36 '' Ne ramène que les dates de retour supérieur au 5 juillet et ont une fois plus tard que 20:36, je veux que cela affiche toutes les heures du 6 juillet à partir du 6 juillet, une sorte de calendrier, à tout moment après l'heure actuelle - 2heures
MH, si votre serveur SQL a un type DateTime, vous pouvez vous en tenir à cela. Les œuvres suivantes pour moi (à l'aide de MySQL): Sélectionnez * à partir d'user_attribute Où se trouve entre "2010-12-13 17:54:57" et '2011-02-09 08:36:11' code> ( Vous devez toujours calculer les dates.) Vous pouvez également créer une vue, en utilisant des champs DateTime, si vous devez laisser la structure de la table comme cela.
Ce serait une date> maintenant () ou (date = maintenant () et heure> maintenant ()) je suppose?
Je le ferais en rejoignant une sous-requête. Quelque chose comme: de sorte que la sous-requête vous donne votre colonne de spectacle que vous pouvez utiliser dans votre déclaration de cas et que votre filtrage. p> p>
Ajout de colonnes date et heure et la comparaison contre l'intervalle -2 heures de +3 ans.
select * from YourTable where Date between cast(getdate() as date) and dateadd(year, 3, getdate()) and Date+cast(Time as datetime) > dateadd(hour, -2, getdate())
Quel SGBD utilisez-vous?
Et quels types de données sont les colonnes de date et d'heure?