2017-07-17 16 views
1

月のデータを返します私は今月のデータを '月'関数を使わずに返しているのですか?DATEDIFF(DD、...私は、クエリでこれに遭遇しました

+0

パラメータをよく見てください。 current_dateから現在の日を減算すると、 '2017-7-17 - 17 = 2017-06-31'という前月の最終日が得られます。 '2017-07-17 - (17-1)= 2017-07-01' – dnoeth

+0

この式は、今月の最初の日付を取得するように設計されました...現在の日付を差し引いて1日を加算するように設計されました月を始める – maSTAShuFu

答えて

0

月の今日の日(GetDate())+ 1)をとり、それを日以来の日数から減算します0.

[Date_start] >= 
DATEADD(dd, --Add Integer X to DateTime Y 

-DAY(GETDATE()) + 1, --X = - Current Day of Month + 1 

DATEDIFF(dd, 0, GETDATE()) --Y = The number of days between day 0 and now. 
          --(in whole days to round out the 'time' part of the datetime) 

これを実現するための標準機能はありません。

ユアーズではありませんはるかに少ない直感的に私が見てきた他の方法よりも、暗黙的にintdatetimeから変換されdatediff()の結果への依存があるとして)(を追加日付で負の数を使用すると、混乱していますが、 。

他の方法ここでは:SQL Server Helper - Date Functions

+1

クエリを理解するためのヒントは、それを構成部分に分解することです。 SELECT -DAY(GETDATE())+ 1、DATEDIFF(dd、0、GETDATE()) 'を実行すると、何が起きているのかがわかります。 – JeffUK

+0

これは、私が探していた素敵な簡潔な答えをありがとう。選択を実行することも良いヒントでした、私はそれを行うことを考えていませんでした。とても有難い – jada91

関連する問題