1

もう一度あなたの助けが必要です

、列を持つSQLテーブルがありdocidますproposedcompletiondatedocstatus

doc_id     ProposedCompdate    Docstatus
0001         2011-10-30           A
0002         2011-11-29           C
0003         2011-10-31           C
0004         2011-10-30           A
0005         2011-10-30           C
0006         2011-10-28           C
0007         2011-10-25           A
0008         2011-10-30           C

Docstatus 'A'今、9日を引いた日付が現在の日付になる結果を取得するためのクエリを書きたいと思います

たとえば、今日の日付が「21-10-2011」の場合

結果セットは

doc_id     ProposedCompdate    Docstatus
0001         2011-10-30           A
0004         2011-10-30           A
4

4 に答える 4

1

日付を加算または減算できるDATEADD SQL SERVER 関数を使用してください。

例えば、

SELECT DATEADD(day,-9, '2006-06-01') as date_diff;

あなたの質問によると、クエリは次のようになります。

SELECT DATEADD(day,-9, 
   (SELECT ProposedCompdate  FROM Table_name where Docstatus = 'A')) 
AS "-9 Days";

DATEADD 関数の詳細については、こちらをご覧ください!!

于 2011-10-21T05:45:25.397 に答える
1

これは Microsoft SQL Server を想定していますが、where 句は次のようになります。

where Docstatus = 'A' AND DateDiff(day, GETDATE(), ProposedComplete) = 9

DateDiff 関数は、測定パラメータ (日、年など)、開始日、および終了日を取り、整数を返します。したがって、今日と ProposedComplete の差は 9 日です。

于 2011-10-21T05:51:02.713 に答える
0
select doc_id,ProposedCompdate,Docstatus from tableName where convert(varchar(20),ProposedCompdate,101) = convert(varchar(20),dateadd(d,9,getdate()),101) 
and Docstatus='A'
于 2011-10-21T05:48:43.883 に答える
0

正常に動作するSQLサーバー2008

CREATE TABLE #Docs (doc_id varchar(10), ProposedCompdate date,Docstatus  nvarchar(50))

INSERT INTO #Docs(doc_id, ProposedCompdate, Docstatus) VALUES(0001,'2011-10-30','A')
INSERT INTO #Docs(doc_id, ProposedCompdate, Docstatus) VALUES(0002,'2011-11-29','C')
INSERT INTO #Docs(doc_id, ProposedCompdate, Docstatus) VALUES(0003,'2011-10-31','C')
INSERT INTO #Docs(doc_id, ProposedCompdate, Docstatus) VALUES(0004,'2011-10-30','A')
INSERT INTO #Docs(doc_id, ProposedCompdate, Docstatus) VALUES(0005,'2011-10-30','C')
INSERT INTO #Docs(doc_id, ProposedCompdate, Docstatus) VALUES(0006,'2011-10-28','C')
INSERT INTO #Docs(doc_id, ProposedCompdate, Docstatus) VALUES(0007,'2011-10-25','A')
INSERT INTO #Docs(doc_id, ProposedCompdate, Docstatus) VALUES(0008,'2011-10-30','C')

SELECT * FROM #Docs WHERE CONVERT(DATE, DATEADD(D, 9, GETDATE())) = ProposedCompdate AND Docstatus = 'A'

DROP TABLE #Docs
于 2011-10-21T05:59:28.693 に答える