[請益] PHP比對日期

看板PHP作者 (ciao!)時間14年前 (2011/11/30 00:50), 編輯推噓7(7028)
留言35則, 10人參與, 最新討論串1/1
各位版上前輩好! 我的資料庫的欄位是用DATE型態存 年-月-日 如今想由表單送出兩個時間資料 分別是開始日期($startdate)和結束日期($enddate) POST接收到日期後再下SQL語法 "SELECT CheckDate FROM CheckInfo WHERE CheckDate BETWEEN '". $startdate ."' AND '". $enddate ."' " 目的是想要查出介於開始日期和結束日期的資料, 我有印出 $startdate和 $enddate 日期都顯示正確。 錯誤訊息為: Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING ------------------ 你好,我加了 . 之後還是有錯誤訊息@@ SELECT CheckDate FROM CheckInfo WHERE CheckDate BETWEEN '' AND '' {"records":0,"page":0,"total":0,"rows":[]} 可是我在選好開始和結束日期之後, 送出時有echo查詢命令: SELECT CheckDate FROM CheckInfo WHERE CheckDate BETWEEN '2011-11-20' AND '2011-11-30' mysql裡確定有在這區間的資料! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.27.160.242

11/30 01:19, , 1F
你的 $enddate 後面 少了 個 .
11/30 01:19, 1F

11/30 01:28, , 2F
借此題問 能只擷取Date型態裡'年'的數值 嗎?
11/30 01:28, 2F

11/30 01:31, , 3F
which db??
11/30 01:31, 3F

11/30 01:36, , 4F
MySQL 不過我已經取出date那個欄位的值了 還是必須再取值
11/30 01:36, 4F

11/30 01:36, , 5F
的時候擷取?
11/30 01:36, 5F

11/30 01:38, , 6F
PHP的話, date('Y',strtotime($date)) or substr()
11/30 01:38, 6F

11/30 01:46, , 7F
SELECT EXTRACT(YEAR FROM '2009-07-02'); => 2009
11/30 01:46, 7F

11/30 04:50, , 8F
剛剛發現 date('Y',strtotime($date)) 可以分別抓出年月日
11/30 04:50, 8F

11/30 04:50, , 9F
但是..卻會跳回1970 01 01 = =a?
11/30 04:50, 9F
※ 編輯: taurus510 來自: 114.39.56.231 (11/30 09:59)

11/30 18:16, , 10F
錯誤訊息還是一樣?
11/30 18:16, 10F

11/30 20:47, , 11F
欸錯誤訊息就變成我後來貼的
11/30 20:47, 11F

11/30 20:47, , 12F
想請問是其實我日期沒有傳進去嗎?Y
11/30 20:47, 12F

11/30 23:11, , 13F
這種訊息看起來是php的錯誤 SQL沒有這種錯誤訊息
11/30 23:11, 13F

11/30 23:29, , 14F
謝謝,但是我真的想不出來為什麼查不到@@
11/30 23:29, 14F

11/30 23:30, , 15F
那兩個變數都是<input type=date >
11/30 23:30, 15F

11/30 23:31, , 16F
還是接收後要再用 date($_["startdate"])包住呢?
11/30 23:31, 16F

12/01 00:44, , 17F
你的 sql 有問題,所以根本沒查到… 檢查你的 sql
12/01 00:44, 17F

12/01 22:18, , 18F
您好,我試過將變數的地方打成如 '2011-11-25'
12/01 22:18, 18F

12/01 22:18, , 19F
這樣的比對是沒問題的
12/01 22:18, 19F

12/01 22:18, , 20F
可是換成變數就抓不到@@
12/01 22:18, 20F

12/02 10:10, , 21F
那就是表單送出的變數有問題…
12/02 10:10, 21F

12/02 12:02, , 22F
你好,可是我echo 出來是有顯示的@@
12/02 12:02, 22F

12/02 12:03, , 23F
請問這樣的日期格式和SQL的相同嗎
12/02 12:03, 23F

12/02 16:08, , 24F
你 echo 出來的日期長什麼樣?
12/02 16:08, 24F

12/02 17:04, , 25F
2011-11-20
12/02 17:04, 25F

12/02 17:04, , 26F
如上面這樣子,我在找HTML5的input type=date
12/02 17:04, 26F

12/02 17:05, , 27F
不知道這個日期是字串還是怎樣@@
12/02 17:05, 27F

12/02 17:13, , 28F
我用firebig觀察他的DOM發現回傳值是text
12/02 17:13, 28F

12/02 17:36, , 29F
噢~不是text,我看錯了
12/02 17:36, 29F

12/03 11:49, , 30F
那試試用mysql的DATE()把字串包起來 看可不可以轉成日期
12/03 11:49, 30F

12/03 14:04, , 31F
分號............
12/03 14:04, 31F

08/11 14:16, , 32F
表單換用html5的date但php抓不到 搜來這篇沒啥幫助
08/11 14:16, 32F

08/11 14:16, , 33F
但後來發現問題很蠢 只是因為寫成id=xxxx(應name=xxxx)
08/11 14:16, 33F

08/11 14:16, , 34F
而會這樣寫是因為我找html5 date時google給的第一篇文
08/11 14:16, 34F

08/11 14:17, , 35F
http://goo.gl/WoB3f6 這篇的問題感覺也很像這狀況
08/11 14:17, 35F
文章代碼(AID): #1ErGrhu3 (PHP)
文章代碼(AID): #1ErGrhu3 (PHP)