SOQLにバインドできる変数型は勝手にString型だけだと思っていましたが、Date型とかもバインドできるのですね。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
/* 月初日から本日までのデータを取得する */ Date startDate = Date.today().toStartOfMonth(); // 月初日 Date endDate = Date.today(); // 本日 List<Sample__c> sampleList = [ SELECT Id ,Name FROM Sample__c WHERE CancelDate__c >= :startDate AND CancelDate__c <= :endDate ]; System.debug(sampleList.size()); |
それにしても、Apexのこの書き方は本当に便利だと思います。
コンパイルでSOQLまでチェックしてくれるし、これに慣れちゃうと他の言語はシンドいですね・・・
ちなみにサブクエリ的な感じでバインドもできるようです。なんかに使えそうですね。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
/* 適当ですがこんな感じ */ Date startDate = Date.today().toStartOfMonth(); // 月初日 Date endDate = Date.today(); // 本日 List<Sample__c> sampleList = [ SELECT Id ,Name FROM Sample__c WHERE CancelDate__c <= :[SELECT Birthdate FROM Contact WHERE Id='XXX'].Birthdate AND CancelDate__c >= :endDate ]; System.debug(sampleList.size()); |
コメント