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 値が範囲外になりました」というエラーが表示されます。