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

回答編集履歴

2

内容の追加

2016/03/05 12:02

投稿

chinyato
chinyato

スコア241

answer CHANGED
@@ -10,4 +10,19 @@
10
10
  動作確認はphpMyAdminにて。
11
11
 
12
12
  POSTされた年月日(year, month, day)から比較文字列を2016/1/30のように組み立ててください。
13
- テーブルの列名にdateを使っているようですが予約語と紛らわしい名前は使わない方が無難だと思います。
13
+ テーブルの列名にdateを使っているようですが予約語と紛らわしい名前は使わない方が無難だと思います。
14
+
15
+ ---
16
+ 【追記】(3/5 21:00)
17
+ ORDER BY 句は最後に記述します。ORDER GYやGROUP BY句は記述する順番がありますので注意してください。
18
+ 以下、動作確認したコードです。
19
+ ```PHP
20
+ <?
21
+ $y = "2016";
22
+ $m = "1";
23
+ $d = "30";
24
+ $value = $y ."/" . $m . "/" . $d;
25
+ $sql = $pdo->prepare('SELECT * FROM deadstock_table where CAST(period_dttm AS DATE )=? ORDER BY stock_id ASC');
26
+ $sql->bindValue(1, $value, PDO::PARAM_STR);
27
+ ?>
28
+ ```

1

内容の追加

2016/03/05 12:02

投稿

chinyato
chinyato

スコア241

answer CHANGED
@@ -1,7 +1,6 @@
1
- datetime型をCASTして比較すれば良いかと。
1
+ datetime型をdate型へCASTして比較すれば良いかと。
2
2
 
3
- period_dttm列がdatetime型で2016-01-30 10:12:27という値が入っている場合には以下クエリでヒットします。(EC-Cubeのテーブルです)
3
+ period_dttm列がdatetime型で2016-01-30 10:12:27という値が入っている場合には以下クエリでヒットします。
4
-
5
4
  ```SQL
6
5
  SELECT * FROM deadstock_table WHERE CAST(period_dttm AS DATE ) = '2016/01/30'
7
6
  または