web-dev-qa-db-ja.com

日時から1日を引く

私は2 datetimeの間の日付の差分を取得するためのクエリがあります:

SELECT DATEDIFF(DAY, @CreatedDate , GETDATE())

Ex :

SELECT DATEDIFF(DAY, '2013-03-13 00:00:00.000' , GETDATE())

作成日から1日を差し引くようなクエリを実行する必要があります。

SELECT DATEDIFF(DAY, **@CreatedDate- 1** , GETDATE())
90
James

これを試して

SELECT DATEDIFF(DAY,  DATEADD(day, -1, '2013-03-13 00:00:00.000'), GETDATE())

OR

SELECT DATEDIFF(DAY,  DATEADD(day, -1, @CreatedDate), GETDATE())
110
yogi

私はあなたが正確に何をしようとしているのかについては定かではありませんが、私はこのSQL関数があなたを助けると思う:

SELECT DATEADD(day,-1,'2013-04-01 16:25:00.250')

上記は2013-03-31 16:25:00.250をあなたに与えるでしょう。

それはちょうど1日あなたを取り戻し、あらゆる標準的な日時または日付フォーマットで動作します。

このコマンドを実行して、探しているものが見つかるかどうかを確認してください。

SELECT DATEADD(day,-1,@CreatedDate)
36
Chris

今日の日付から単純に1日を引くには

Select DATEADD(day,-1,GETDATE())

(元の投稿は-7を使用していましたが、誤りでした)

29
FoxDeploy

どうやらあなたは日時からあなたが望む日数を引くことができます。

SELECT GETDATE() - 1

2016-12-25 15:24:50.403
18
Philip Rego

これでうまくいくはずです。

select DATEADD(day, -1, convert(date, GETDATE()))
5
samithagun

これを試してください、これはあなたを助けるでしょう

SELECT DATEDIFF(DAY, DATEADD(DAY,-1,'2013-03-13 00:00:00.000') , GETDATE())
1

正直言って私はただ使用します:

select convert(nvarchar(max), GETDATE(), 112)

これはYYYYMMDDとそれからマイナス1を与えます。

もっと正確に

select convert(nvarchar(max), GETDATE(), 112) - 1 

昨日の日付のために。

Getdate()をあなたの値OrderDateに置き換えます

select convert(nvarchar (max),OrderDate,112)-1 AS SubtractDate FROM Orders

それをするべきです。

1
meekon5
SELECT DATEDIFF (
    DAY, 
    DATEDIFF(DAY, @CreatedDate, -1), 
    GETDATE())
1
Daniel Imms