一年前、取得日を達成するためのスクリプトを記述するために、SQL Serverの一般的な方法

質問:
  データベースプログラミングの開発では、一年前に日付を取得することが必要な場合があるので、これは時間のカットオフポイント、前と対応するクエリ後のデータ量です。例えば:
1.終了を見つけるために、0.1年前の日の一年前に現在のデータの量にする前に、データの量、及び日午後12時00分スタート。
一年前、24日目のポイントを終了する前にデータの量を見つけるだけでなく、一年前のデータの量に2日現在に24ポイントを開始しました。
3.のようにして検索するには、1年目に午後12時01分で月前のデータの量とデータ量が今開始する月の1日の0:00前に年を。
4.は、前年同期の24ポイントの最後の日の前の月のデータの量を見つけると、現在のデータへの前年先月のようにアンテナ24時量に。
  特定のクエリシーン以上4例では、昨年の増分の動的な計算は、現在の日付などの状況に応じてそこ統計や他のスクリプトのアーカイブデータは、データ量データベースのディストリビューションの開発に先立ってですが、また。
  各受信このような要求は、一年前の日付を取得し、その後、それぞれの時間を実現する方法を再考する必要がある場合は、確かに賢明ではない、または会社の誰かが達成するためのスクリプトを記述しなければならなかったことが、他の同僚は、同じ問題に遭遇し、時間とエネルギーのより多くの廃棄物は、この詳細にいくつかの努力を費やしたように、一度再考が、少しは何のお米を調理しないしたいと感じ、我々は最初の米を購入する必要がありますが、また別の人は、スクリプトを記述するために引き起こす可能性が高いことは、一様ではないに助長されていませんコードの原則の標準化、我々はまだ人々がロジックの種類を書く前に考えなければならないとき、別の人が続きます。そして、スクリプトの開発を再度、それらは再セルフテストをするために作業効率を向上させることが助長されていません必要があります。

ソリューション:
  まず、簡単な基本的な知識:
GETDATE()は、現在の日付を取得することです。
DATEADDは増加または日付に減少し、ここでは1年目[DATEADD(年、-1、日付文字列)]を削減するために使用することができ、 ;また、一ヶ月[DATEADD(月、1、日付列)]増加するために使用することができ
、操作が日付列に撮影することができ、スイッチング変換のみ取ることができる形式の日付[2019年7月17日に変換します(VARCHAR(10)、日付列、120))]、フォームが[のみ年2019から07部に取り込まれてもよい(VARCHAR(7)、日付列、120変換))]。
  そして、4つの対応する4つのソリューションのトップ問題である:
1.最も簡単な操作の現在の日付1年を削減して、日付の唯一の傍受します。
2.第一日操作における電流増加の日付、およびその後1減少し、最終日のみ傍受。
3.現在の日付の遮断操作の最初の数年間は、その後、第一に、月を指定して、1減少し、唯一の傍受最後の日付。
4.最初の操作の現在の年、月、日の傍受し、その後は1日に月を指定して、1年プラス1ヶ月、そして最終的に傍受日付で減少しました。
  :最後に、あなたは、クエリスクリプトの条件で直接今回のノードを使用することができる
時間フィールド<@datePointテーブルからSELECT COUNT(*):クエリ統計時間のノードの前に
テーブルところ時間からSELECT COUNT(*):クエリ統計ノードが現在時刻に始まりますフィールド> = @datePoint

スクリプト:

/ * 
    関数:年前の日付を取得します
    zhang502219048:著者
    スクリプト出典:HTTPS://www.cnblogs.com/zhang502219048/p/11198789.html 
* / 

- 1.同じ日0時00分の時点で前年
DECLARE  @datePointの 日時を =  変換VARCHAR10)、DATEADD- 1GETDATE())120 SELECT  @datePoint  AS DatePoint
 ゴー

- 24日の履歴点2. 
DECLARE  @datePoint  日時 =  変換VARCHAR10)、DATEADD- 。1DATEADD1GETDATE()))、120 SELECT  @datePoint  AS DatePoint
 ゴー

- 1日0:00歴史月3. 
DECLAREの @datePointの 日時 =  変換VARCHAR10)、DATEADD- 。1変換VARCHAR7)、GETDATE()、120+  ' -01 ')、120 SELECT  @datePoint  AS DatePoint
 ゴー

- 歴史点24として4月の最終日には、
DECLARE  @datePoint  日時 =は 変換VARCHAR10)、DATEADD。1DATEADD- 。1変換VARCHAR7)、GETDATE()、120+ ' -01 '))、120 を選択 @datePoint  としてDatePoint
 行きます

スクリプトの結果:
 
要約:
誰もが書かれた自分の仕事の過程でデータベースの日前に、独自のスクリプトを生成する方法を共有するためにあなたが実際の作業を行うことなく、直接イズム適用する必要がある場合ブロガーは、ここにありますプログラミングの考えを繰り返します。 

おすすめ

転載: www.cnblogs.com/zhang502219048/p/11198789.html