-1
は私のクエリです:SQL DATEADD(平日、1日)が動作していないようですか?ここ
私は日によっておよび曜日によってDATEADD
に結果を比較すると、それは同じ結果を返します。ここでは
SELECT ID AS 'securityid'
, date
, DATEADD(DW, 1, adate) AS 'lagged_date_v2'
, DATEADD(DAY, 1, adate) AS 'lagged_date_v1'
, aclose AS 'previous_close'
FROM mytable
WHERE adate BETWEEN '20170101 09:00' AND '20170630 18:00' AND
ID = 100056;
は、上記のコードの出力があります。
列adate
は、ほんの典型的な日付です。Jan 28, 2017
は土曜日です。ただし、この行ではlagged_date_v1
とlagged_date_v2
の両方がJan 28
と返されます。平日までにDATEADD
を正しく使用した場合は、Jan 28
の代わりにJan 30
が表示されます。
私のSQL Serverのバージョンは、私が正しく平日でDATEADDを使用する場合は、2008年
"dayofyear、day、およびweekdayは同じ値を返します。" https://docs.microsoft.com/en-us/sql/t-sql/functions/dateadd-transact-sql; https://stackoverflow.com/questions/5471524/add-business-days-to-date-in-sql-without-loopsを参照してください。 –