日時から1日を引く


102

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

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

Ex :

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

作成された日から日を減算する次のようなクエリが必要です。

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

1
結果に1を追加しないのはなぜですか?
Damien_The_Unbeliever 2013年

結果から1を引くと望ましい答えが得られる場合、結果から引くことは、日付の早い方に日数を加えることと同じであるため、あなたが提起した質問は間違っているように見えます。
Damien_The_Unbeliever 2013年

そして、あなたは私にあなたの最初の応答として計上式は、私が使用したいということです-あなたは答えとして、それを投稿できるが、私が言うように、それはあなたの質問は、(実際には正しくないことを意味DATEDIFF2003-03-12と今日は14であります12ではなく)。
Damien_The_Unbeliever 2013年

Yes..youが結果とは逆のようなright..it作品..です
ジェームズ

回答:


124

これを試して

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

または

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

3
Philip Regoからの回答に従って、SELECT GETDATE()-1を使用して日付から日数を減算できます。
ホセ・バルボーザ

44

私があなたが何をしようとしているのか正確にはわかりませんが、この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)

33

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

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

(元の投稿は-7を使用しており、正しくありませんでした)





1

これを試してください、これがあなたを助けるかもしれません

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

これを試すことができます。

Timestamp = 2008-11-11 13:23:44.657;

SELECT DATE_SUB(OrderDate,INTERVAL 1 DAY) AS SubtractDate FROM Orders

出力:2008-11-10 13:23:44.657

私はそれがあなたの問題を解決するのに役立つことを願っています。


2
SQLサーバー。INTERVALまたはをサポートしていませんDATE_SUB
Damien_The_Unbeliever 2013年

SELECT DATEADD(day、45、OrderDate)FROM Orders。了解しました?
チンタン2013年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.