T-SQLの日付があります。だから私は最初の日付と最後の日付を取得したい。特定の日付から最初と最後の日付を取得
たとえば、この日付は2017-09-19です。私は2017-09-18と2017-09-24を持っています
どうすればいいですか?
T-SQLの日付があります。だから私は最初の日付と最後の日付を取得したい。特定の日付から最初と最後の日付を取得
たとえば、この日付は2017-09-19です。私は2017-09-18と2017-09-24を持っています
どうすればいいですか?
は、以下のことを試してみてください。
SELECT
DATEADD(dd, -(DATEPART(dw, yourDateInput)-1), yourDateInput) AS Weekstart
,DATEADD(dd, 7-(DATEPART(dw, yourDateInput)), yourDateInput) As weekEnd;
。なお:週の最初の日は、SQLサーバー上の言語設定に依存します。
17-23の開始日と終了日がある場合は、日曜日が週の最初の曜日です。
したがって、この場合には、あなたが使用する必要があります
SET DATEFIRST 1;
は月曜日を週の最初の日になるように設定するには。
次のクエリを実行してみてください、それはあなたが:)
DECLARE @b DATE = '20170918' --put your date here
DECLARE @a DATE
Print('First day of Current Week:')
set @a = dateadd(ww, Datediff(ww,0,@b),0)
Print(@a)
Print('')
Print('Last day of Current Week:')
set @a = dateadd(ww, Datediff(ww,0,@b)+1,-1)
Print(@a)
Print('')
--additional queries
SET @a =dateadd(mm, Datediff(mm,0,@b),0)
Print('First day of Current Month:')
Print(@a)
Print('')
set @a = dateadd(mm, Datediff(mm,0,@b)+1,-1)
Print('Last day of Current Month:')
Print(@a)
Print('')
Print('First day of Last Month:')
set @a = dateadd(mm, Datediff(mm,0,@b)-1,0)
Print(@a)
Print('')
Print('Last day of Last Month:')
set @a = dateadd(mm, Datediff(mm,0,@b),-1)
Print(@a)
Print('')
Print('First day of Last Week:')
set @a = dateadd(ww, Datediff(ww,0,@b)-1,0)
Print(@a)
Print('')
Print('Last day of Last Week:')
set @a = dateadd(ww, Datediff(ww,0,@b),-1)
Print(@a)
を望むすべてを与えるだろう