【2021/05/31】今日の学習
【CakePHP】 QueryBuilder と ConnectionManager
CakePHPでは、データベース接続に2つの方法がある。それが、
- QueryBuilder(クエリビルダ)
- ConnectionManager
これらは、
データベースから取り出してきたデータの形式が異なるので注意。
QueryBuilderでは、Queryインスタンスを利用してデータベースにアクセスし、エンティティクラスのインスタンスとして取り出す
→オブジェクト型
ConnectionManagerを使って直接SQLを発行する場合は、配列でデータを受け取る。配列内に保管されているレコードも連想配列になっている。→配列の型
【SQL】 日付を加工する
- DATEDIFF ・・・日付の差分を取る
例)
mysql> SELECT DATADIFF(' 2021-12-31 ', ' 2021-12-30 ' ) ; → 1 SELECT DATADIFF(' 2021-11-30 ', ' 2021-12-31 ' ) ; → - 31
以上の例を元に、例えば、最終変更日時から半年以上経過しているかどうかを知りたいとき、
最終更新日をMAX(update_date)とすると
mysql> SELECT DATADIFF( MAX(update_date), '現在日時 − 6ヶ月') <= 0 ;
ということになる。
- DATE_ADD(加算)
- DATE_SUB(減算) より、' 現在日時 − 6ヶ月 'を取るには、
DATE_SUB( ' 現在日時 ', INTERVAL 6 MONTH) ; もしくは、 DATE_ADD( ' 現在日時 ', INTERVAL - 6 MONTH) ;
基本的に日時は文字列になるが、加工や比較のときは型に注意すること。
今日はここまで。
毎日少しずつ、かつ学びたてほやほやの内容が多いので、大事なとこ抜けてたり、普通に間違ってたり、断片的な知識メモしか書いてなかったりするから、誤認識の修正や追記が随時必要。