SQL Server 2005のパージプロシージャで、1年以上前のテーブルのすべての行を削除しなければならない+現在の年に渡された時間。SQLで1年目の日付を取得するにはどうすればよいですか?
例:私は2009年6月10日今日の手順を実行した場合、それは(含まれており、後方それは2007年である)2008-01-01夜12時よりも古い行を削除する必要があります。
年の最初の1秒の日付を取得するにはどうすればよいですか?
私はこれ試してみた:
select cast((DATEPART(year, getdate()) -1)AS DATETIME);
を私は(予想I 誤ってなど)1905-07-02 00:00:00.000
なく2008-01-01 00:00
を取得します。
誰かが私を助けてくれますか?
うーん..鉱山が唯一の1アップし、1票ダウン持って、まだ地雷が正しい答えを与える唯一のソリューションである一方で(執筆時点で)この質問に対する他の答えは、8 upvotesを持っているか興味深いです。 (今日の日付(2009年10月6日)の結果は2008-01-01 00:00:00、Rajのソリューションは2009-01-01 00:00:00に戻る – CraigTP
私はSELECT CONVERT(DATETIME、CAST入力フォーマットを指定するため、YEAR(GETDATE()) - 1 AS VARCHAR)+ '0101'、112)またはSELECT CONVERT(DATETIME、CAST(YEAR(GETDATE()) - 1 AS VARCHAR)、112) – LukLed
@CraigTP:あなたが正しい答えを持っていたので、私はあなた自身をあきらめました。私は訂正を反映するように鉱山を変更しました –