teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

誤記を修正

2016/06/24 08:41

投稿

KiyoshiMotoki
KiyoshiMotoki

スコア4791

answer CHANGED
@@ -15,7 +15,7 @@
15
15
 
16
16
  であれば、以下のいずれかのSQL文で実現可能です。
17
17
  ```sql
18
- SELECT `hoges`.* FROM `hoges` WHERE created_at >= CURRENT_DATE() AND created_at < ADDDATE(CURRENT_DATE());
18
+ SELECT `hoges`.* FROM `hoges` WHERE created_at >= CURRENT_DATE() AND created_at < ADDDATE(CURRENT_DATE(), 1);
19
19
 
20
20
  SELECT `hoges`.* FROM `hoges` WHERE DATE(created_at) = CURRENT_DATE();
21
21
  ```

1

質問の追記に伴い、修正

2016/06/24 08:41

投稿

KiyoshiMotoki
KiyoshiMotoki

スコア4791

answer CHANGED
@@ -8,4 +8,14 @@
8
8
  SELECT `hoges`.* FROM `hoges` WHERE DATE(created_at) = "2016-05-20";
9
9
  ```
10
10
  ただし、この記述方法では`created_at`カラムにインデックスが張ってあったとしても、それを使えなくなります。
11
- 状況によっては、ご質問のSQLの方が良いパフォーマンスを得られると思います。
11
+ 状況によっては、ご質問のSQLの方が良いパフォーマンスを得られると思います。
12
+
13
+ ---
14
+ > ・バッチ処理の実行した日付の範囲内のデータを取得するという処理をSQLもしくは、pythonで実現する方法
15
+
16
+ であれば、以下のいずれかのSQL文で実現可能です。
17
+ ```sql
18
+ SELECT `hoges`.* FROM `hoges` WHERE created_at >= CURRENT_DATE() AND created_at < ADDDATE(CURRENT_DATE());
19
+
20
+ SELECT `hoges`.* FROM `hoges` WHERE DATE(created_at) = CURRENT_DATE();
21
+ ```