StartDateTime
日時値を格納するという列を持つテーブルがあります。現在のレコードの前月の最初の日の日付を返すステートメントが必要です。したがって、保存された日付が2006-06-17 08:23:42.000
ステートメントである場合は戻り2006-05-01 00:00:00.000
、重要なことに、保存された日付が2006-01-17 08:23:42.000
ステートメントである場合は戻ります2005-11-1 00:00:00.000
これDATEBYPARTS
が使えれば簡単そうですが、残念ながら使えません。使ってみた
CAST(
CAST( Year([StartDateTime]) as varchar(4) )
+ '-' +
CAST( (Month([StartDateTime])-1) as varchar(2) )
+ '-' +
CAST( '1' as varchar(2) )
AS DATETIME )
しかし、1 月 1 日の日付でエラーが発生し、「char データ型から datetime データ型への変換により、datetime 値が範囲外になりました」というエラーが表示されます。