問題:
SQL Serverデータベースに昨日の日付(時刻なし)を表示したい。
解決策:
SELECT DATEADD(day, -1, CAST(GETDATE() AS date)) AS YesterdayDate;
今日が2020-09-24であると仮定すると、結果は次のようになります。
yesterday_date |
---|
2020-09-23 |
ディスカッション:
昨日の日付を取得するには、今日の日付から1日を引く必要があります。 GETDATE()
を使用します 今日の日付を取得するには(タイプはdatetime
)そしてそれをdate
にキャストします 。 SQL Serverでは、DATEADD()
を使用して、任意の日数を減算または加算できます。 機能。
DATEADD()
関数は3つの引数を取ります:datepart
、number
、およびdate
。ここで、datepart
の値 day
です 、減算する時間の単位は日であるため。 2番目の引数は-1です(1日を減算します。これは、-1日を加算するのと同じです)。 3番目の引数は、今日の日付、つまり減算する日付です。
もちろん、同じように簡単に任意の時間間隔で戻ることができます。次に例を示します:
SELECT DATEADD(month, -5, CAST(GETDATE() AS date));
時間間隔をadded
日付に。だから、明日の日付を取得したい場合は、次の方法があります:
SELECT DATEADD(day, 1, CAST(GETDATE() AS date)) AS TomorrowDate;