Obtenir la plage de dates pour le mois en cours?
Je voudrais créer une instruction SQL pour être utilisées plus tard dans mon code, qui obtient la plage de dates pour le mois en cours.
Exemple: C'est le mois d'août, de sorte que la date serait
StartDate = 08/01/11
EndDate = 08/31/11
cependant, si c'est en février
StartDate = 02/01/11
EndDate = 02/28/11
Select *
from mytable
where (check_date >= StartDate) AND (check_date <= EndDate)
merci pour toute aide que vous pourriez être en mesure de donner
Un problème avec l'aide de la dernière journée du mois, c'est que vous devez être sûr que
Je suis d'accord. Je pourrais écrire un livre blanc sur les raisons pour lesquelles on devrait exclusif dates de clôture plutôt que d'inclusion dates de clôture. Dans ce cas vous vous retrouvez avec
check_date
ne se produit jamais au plus tard à 12 heures. S'il le peut, il est préférable d'utiliser check_date < StartDateOfNextMonth
.Je suis d'accord. Je pourrais écrire un livre blanc sur les raisons pour lesquelles on devrait exclusif dates de clôture plutôt que d'inclusion dates de clôture. Dans ce cas vous vous retrouvez avec
>= 1st August AND < 1st September
qui est Donc Beaucoup plus Facile à faire... (Remarque: l'Utilisation de ce format signifie qu'il n'a PAS d'importance si le champ est toujours une DATE, ou si elle peut être un DATETIME, il fonctionne dans les deux cas...)OriginalL'auteur IElite | 2011-08-24
Vous devez vous connecter pour publier un commentaire.
Vous pouvez trouver le début de ce mois, le mois-depuis-zéro truc. Le dernier jour du mois est un mois plus tard, moins d'un jour:
Cette affiche:
OriginalL'auteur Andomar
J'avais besoin de chose très semblable, pour obtenir le mois de la date de la gamme de date précise, ce qui était possible à utiliser dans SQL de recherche - cela signifie que non seulement les dates doivent être corrects, mais le temps doit être à partir de 00:00:00 à 23:59:59 si dans les 24 heures, mais il est tout simplement question de l'affichage de format DATETIME, il travaillera avec 12 heures système de trop.
Il sera peut-être utile pour quelqu'un. Cette solution est basée sur Andomar réponse:
Vous obtiendrez comme résultat 2012.01.01 00:00:00 - 2012.01.31 23:59:59.
OriginalL'auteur agira
Si vous avez besoin du mois de gamme juste pour vérifier si "check_date" appartient à un mois particulier, vous peut-être pouvez utiliser un état comme la
OriginalL'auteur mslliviu
Vous pouvez créer une fonction qui retourne la date de fin de la date donnée.
Donc la fonction, vous pouvez passer à la date de début et ce sera comme cela
+1 Pourquoi faire confiance à des bibliothèques de quand vous pouvez faire vous-même? xD
Ne sais pas à propos de la bibliothèque de support pour les différents calendriers, mais cela ne fonctionne que pour le (proleptic) du calendrier Grégorien. Si vos données se trouve être pour certains un calendrier régional (ou Julien), ce sera pas fonctionner comme prévu.
-1. Ce qui est faux. Si la DB implémente les fonctionnalités nécessaires, pourquoi se fier à faire vous-même? (Ne pas réinventer la roue.)
OriginalL'auteur Vitor Furlanetti