SQL Serverで、別の日時に基づいて月の最初を表す日時を作成する最も簡単でクリーンな方法は何ですか? たとえば、2005 年 3 月 3 日 14:23 の変数または列があり、2005 年 3 月 1 日 00:00 を取得したい (varchar ではなく日時として)
9936 次
4 に答える
27
Select DateAdd(Month, DateDiff(Month, 0, GetDate()), 0)
これを列で実行するには、GetDate()を列名に置き換えます。
このコードの秘訣は、DateDiffを使用することです。DateDiffは整数を返します。2番目のパラメーター(0)は、SQL Serverの0の日付(1900年1月1日)を表します。したがって、datediffは、1900年1月1日からの整数の月数を計算し、その月数を1900年1月1日に加算します。正味の効果は、日時値の日(および時刻)部分を削除することです。
于 2008-09-23T15:06:55.263 に答える
7
SELECT DATEADD(mm, DATEDIFF(mm, 0, @date), 0)
于 2008-09-23T15:05:57.857 に答える
2
このようなものはうまくいくでしょう....
UPDATE YOUR_TABLE
SET NewColumn = DATEADD(day, (DATEPART(day, OldColumn) -1)*-1, OldColumn)
于 2008-09-23T15:09:26.320 に答える