var
DateFormat: TFormatSettings;
date1, date2: TDate;
begin
// 避免每台電腦對日期設定不同
// 所以要統一日期格式
DateFormat.ShortDateFormat := 'yyyy/M/d';
DateFormat.DateSeparator := '/';
date1 := StrToDate(Edit1.Text+'/'+Edit2.Text+'/1'); // 2007/2/1
date2 := StartOfTheDay(EndOfTheMonth(date1)); // 2007/2/28 ......
end;
EndOfTheMonth 傳回的是 2007/2/28 23:59:59.999, 而這個值傳入 MSSQL 卻會變成次日, 也就是 2007/3/1, 如此日期區間就不對, 抓的資料也跟著有錯.
所以要再藉著 StartOfTheDay 將取得 date2 的一開始, 也就是 2007/2/28 0:0:0 了. 吊詭吧...被這搞好久......
沒有留言:
張貼留言