日付を出力するクエリがあり、その日付の 5 か月前の日付を表す列を追加したいと考えています。したがって、出力値が 2012-06 の場合、2012-01 を表示したいと思います。
質問する
2499 次
4 に答える
1
SELECT
unnamed_date_column,
5_months_earlier = DATEADD(MONTH, -5, unnamed_date_column)
FROM dbo.unnamed_table;
これらを varchar として格納している場合 (これは にある場合はそうである必要がありyyyy-mm
、それをやめるべきです)、次のようにすることができます。
SELECT
unnamed_date_column,
5_months_earlier = DATEADD(MONTH, -5, unnamed_date_column)
FROM
(
SELECT unnamed_date_column = CONVERT(DATETIME, unnamed_varchar_column + '-01')
FROM dbo.unnamed_table
) AS x;
もちろん、エラーが発生する可能性があります。この列に間違ったデータ型を選択すると、誰かが2013-13
or1623-99
またはwho_dat
をこの列に入力する可能性があるためです...
于 2013-10-04T21:01:06.390 に答える
0
これを試してください:
DECLARE @DT DATETIME = GETUTCDATE()
SELECT CONVERT(VARCHAR(7),@DT, 120) AS TODAY_DATE, CONVERT(VARCHAR(7),DATEADD(MM,-5,@DT), 120 ) AS BEFORE_5_MONTHS
于 2013-10-08T10:51:20.043 に答える
0
select [column]
from [table]
where [datecol] between DATEADD(month, -5, getdate()) and getdate()
于 2013-10-04T20:52:14.447 に答える