web-dev-qa-db-ja.com

SQLサーバーの現在の日付に日を追加するにはどうすればよいですか?

現在の日付に日付を追加しようとしていますが、現在の日付に360日を追加すると、間違った値が表示されます。

例:現在の日付は2014年11月4日です。360日を追加しています。2015年4月11日になりますが、同じ日付の2014年4月11日を表示しています。年は変わっていません。

ここに私のコードがあります

select dateadd(dd,360,getdate())
20
Fazil Mir

ただやる

Select (Getdate()+360) As MyDate

指定された日付から日を加算または減算するために、dateadd関数を使用する必要はありません。年、月、時間を追加するには、dateadd関数が必要です。

39
Shahid Mustafa

select dateadd(dd,360,getdate())は、次のように正しい日付を提供します。

2017-09-30 15:40:37.260

私はクエリを実行してチェックしました:
Please check the attached image

22
Mahantesh
Dateadd(datepart,number,date)

次のように使用する必要があります:-

select DATEADD(day,360,getdate())

その後、同じ日付であるが異なる年が見つかります。

10
TheChanger

SQL Server 2017から 公式ドキュメント

SELECT DATEADD(day, 360, GETDATE());

GETDATE関数の時間部分を削除にしたい場合は、以下を実行できます。

SELECT DATEADD(day, 360, CAST(GETDATE() AS DATE));
5
Dherik

2つまたは3つの方法(あなたが望むものに依存します)、私たちが現在の日付にいると言います(tsqlコードで)-

DECLARE @myCurrentDate datetime = '11Apr2014 10:02:25 AM'

(ちなみに、元の投稿で2014年4月11日または2014年11月11日を意味していましたか?私は推測する)

  1. SELECT @myCurrentDate + 360-デフォルトでは、日付と時刻の計算の後に+(整数)が続き、それを日単位で追加します。したがって、2015-04-06 10:02:25.000を取得することになります-正確にあなたが望んだものではなく、来年の締め切りの単なる球場の数字です。

  2. SELECT DateADD(DAY, 365, @myCurrentDate)またはDateADD(dd, 365, @myCurrentDate)は、「2015-04-11 10:02:25.000」を提供します。これら2つは合成糖です(まったく同じです)。これはあなたが望んだことだと思うべきです。ただし、日付が「4年のうち3年」(たとえば[DECLARE @myCurrentDate datetime = '11Apr2011 10:02:25 AM')年]の場合は '2012-04-10 10:02:25.000'になります。 2012年は366日だったので、覚えていますか? (2012年2月29日は「余分な」日を消費します。ほぼ4年ごとに29Febがあります)。

  3. だからあなたが意味したと思うのは

    SELECT DateADD(year, 1, @myCurrentDate)
    

    2015-04-11 10:02:25.000が得られます。

  4. またはそれ以上

    SELECT DateADD(year, 1, DateADD(day, DateDiff(day, 0, @myCurrentDate), 0))
    

    2015-04-11 00:00:00.000が得られます(datetimeにも時間がありますよね?)。微妙な、ああ?

0
LongChalk

SELECT DateAdd(5,day(getdate())これは、現在の日に5日を追加するためのものです。例えば:今日の日付は2018年8月23日であり、上記のクエリを使用して2018年8月28日になりました

0
Vimal_devs
**Add Days in Date in SQL**

 DECLARE @NEWDOB DATE=null

 SET @NEWDOB= (SELECT DOB, DATEADD(dd,45,DOB)AS NEWDOB FROM tbl_Employees)
0
JIYAUL MUSTAPHA

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

select (CONVERT(VARCHAR(10),GETDATE()+360,110)) as Date_Result
0