2017-04-04 70 views
0

我的目標是計算基於簡單的日期範圍查詢鉛記錄在當地時間銷售人員SOQL不能在本地時間

Integer TotalLeads = [ Select Count() From Lead where createddate >= fromdate CreatedDate <= todate]; 

相當基本的獲得日期時間。但是,我遇到的問題是我只想計算「本地」時間而不是UTC的線索;創建日期以UTC記錄主數據。

樣品日期: 來源:2017年3月23日 爲:2017年3月29日

對於這些樣品的日期,我的本地時間爲UTC - 7(洛杉磯),所以我的查詢將

Integer TotalLeads = [ Select Count() From Lead where createddate >= 2017-03-23T07:00:00z AND CreatedDate <= 2017-03-30T06:59:59z]; 

如果這些都是我的日期,我怎麼附加本地時間,所以從日期爲2017-03-23T07:00:00Z及日期爲2017-03-30T06:59:59Z?

從日期使用第一,我能做到以下幾點,但找不出如何保持它在當地時間

 // Date 
     date ds = date.valueof('2017-03-23'); 
     string dm = string.valueOf(ds.month()); 
     string dd = string.valueOf(ds.day()); 
     string dy = string.valueOf(ds.year()); 

     // DateTime Midnight (UTC) 
     String SDate = string.valueof(dm +'/' + dd + '/' + dy + ' 12:00 AM'); 
     system.debug(SDate); // -> 3/23/2017 12:00 AM 

     // DateTime (Local Time) 
     datetime ds2 = datetime.parse(SDate); 
     system.debug(ds2); // -> 2017-03-23 07:00:00 

     system.debug(ds2.format('yyyy-MM-dd\'T\'hh:mm:ss'')); // -> 2017-03-23T12:00:00 

正如你可以看到,使用ds2.format把它的格式我需要,但回到UTC(午夜),我需要它是2017-03-23T07:00:00

有什麼建議嗎?

謝謝!

+0

想象我做錯了什麼。日期計算是好的,它與如何傳遞給批處理作業有關。 – user20719

回答

0

想象我做錯了什麼。日期計算是好的,它與如何傳遞給批處理作業有關。