Share via


Comment trouver divers jour, semaine en cours, deux semaines, mois, Quater, semestre et année dans SQL Server

Table des matières

  • Day
  • Semaine actuelle Date de début et Date de fin
  • Deux semaines début et Date de fin
  • Début de mois et Date de fin
  • Date de fin et de début de trimestre
  • Semestre début et Date de fin
  • Début de l'année et la Date de fin

Calcul de date

Je travaillais sur un des projets financiers un de ma propre implémentation personnalisée pour SQL Server.J'ai trouvé extrêmement important qui est nécessaire pour la plupart des applications qui se trouve sur le marché, désormais pensé de l'édition et de l'article sur le même. Cela sera nécessaire pour presque toutes les applications financières qui se trouve sur le marché aujourd'*** et sera extrêmement important, car il a large gamme d'applications en financier, elle se vend etc...

Cet article fournit tous dans la collection qui sera extrêmement utile pour presque tous les programmeurs dans le marché actuel qui utilisent sql server pour leurs projets.* *

Trouver la Date actuelle** **

Extrêmement simple et il faut surtout pour les débutants.

Sélectionnez GETDATE() 

Obtient la date actuelle de SQL Server.

Sortie :

27-07-2013 14:45:44.463

Date de début de conclusion et de la Date de la fin de la semaine 

Ce qui suit va donner la date de début de la semaine en cours. Assumer la Date actuelle est 27 th juillet 2013.

Sélectionnez DATEADD()SEM, DATEDIFF((wk,,0,GETDATE()), 0)

La sortie sera :

2013-07-22 00

Date de fin de constatation de la semaine 

Sélectionnez DATEADD(JJ, 6-(DATEPART()(dw, GETDATE())), GETDATE())

La sortie sera :

26-07-2013 14:51:36.1

Cela suppose que le début de la semaine est le lundi et fin est vendredi, basé sur le jour ouvrable

Date de début de conclusion et de la Date de la fin de la semaine deux

Cette partie est assez délicate car nos jours peuvent être entre la première ou la deuxième moitié et le mois peut également contenir les 28,29,30,31 jours.

Nous diviserons la date pour les 1-15 en première moitié, tel qu'utilisé par la plupart des institutions financières et alors basé sur où les chutes de date que nous calculons les deux semaines

Le code suivant fournit les dates de début et de fin pour deux semaines :

si Moisde()getdate()) < = 15

commencer

  Sélectionnez @beginDate = DATEADD((mm, , DATEDIFF((mm,0,,GETDATE()), 0)

      Sélectionnez @endDate = DATEADD((mm, , DATEDIFF((mm,0,,GETDATE()), 14)

fin

d'autre

commencer

            Sélectionnez @beginDate = DATEADD((mm, , DATEDIFF((mm,0,,GETDATE()),15)

      Sélectionnez @endDate = DATEADD((s,-1,DATEADD((mm, ,DATEDIFF((m,0,GETDATE())+1,0))

fin

fin

Cela va afficher 1 à 14 ou 15-fin de mois comme commencent et se terminent les dates

Date de début de conclusion et de la Date de la fin du mois en cours

Cette partie est assez simple.

La requête suivante fournit les dates de début et de fin du mois en cours :

Sélectionnez@beginDate = DATEADD((mm, , DATEDIFF((mm,0,,GETDATE()), 0)

      Sélectionnez @endDate = DATEADD((s,-1,DATEADD((mm, ,DATEDIFF((m,0,GETDATE())+1,0))

Date de début de conclusion et de la Date de la fin de l'actuelle Quater

La requête suivante fournit les dates de début et de fin du mois en cours :

Sélectionnez@beginDate = DATEADD()(q, DATEDIFF()(q, 0, , GETDATE()), 0)

      Sélectionnez @endDate = DATEADD() d, -1, DATEADD()(q, DATEDIFF()(q, 0, ,GETDATE()) + 1, 0))

Compte tenu de la date d'aujourd'*** que 27th juillet 2013.

La date de début sera :

2013-07-01 00

La date de fin sera :

2013-09-30 00

Date de début de conclusion et de la Date de fin de semestre

Il s'agit d'une partie assez compliquer. Nous devons trouver date relève de la première moitié ou de la seconde moitié de l'année et aucune méthode directe disponible depuis sql serveur à faire de même.

La requête suivante fournit les dates de début et de fin de semestre :

Sélectionnez@beginDate = castingcasting()(((((mois()GETDATE()) - 1) / 6) * 6) +1) AS VARCHAR) + ' -1-' + casting()an()GETDATE()) AS VARCHAR) AS DATETIME);

Sélectionnez@endDate = castingcasting()(((((mois()GETDATE()) - 1) / 6) * 6) + 6)AS VARCHAR) + ' -1-' + casting()an()GETDATE()) AS VARCHAR) AS DATETIME);

Compte tenu de la date d'aujourd'*** que 27th juillet 2013.

La date de début sera :

2013-07-01 00

La date de fin sera :

2013-12-01 00

Date de début de conclusion et de la Date de fin d'année

La requête suivante recherche les dates de début et de fin pour l'année en cours :

Sélectionnezd dateadd((@beginDate = ,-datepart((dy,getdate())+1,getdate())

      Sélectionnez @endDate = dateadd() d,-datepart() d,getdate()),dateadd((m,13-datepart((m,getdate()),getdate()))

Compte tenu de la date d'aujourd'*** que 27th juillet 2013.

La date de début sera :

2013-01-01 15:15:47.097

La date de fin sera :

2013-12-31 15:15:47.113