作者taurus510 (ciao!)
看板PHP
標題[請益] PHP比對日期
時間Wed Nov 30 00:50:48 2011
各位版上前輩好!
我的資料庫的欄位是用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
1F:推 exboyfriend:你的 $enddate 後面 少了 個 . 11/30 01:19
2F:推 susaku:借此題問 能只擷取Date型態裡'年'的數值 嗎? 11/30 01:28
3F:→ mervynW:which db?? 11/30 01:31
4F:推 susaku:MySQL 不過我已經取出date那個欄位的值了 還是必須再取值 11/30 01:36
5F:→ susaku:的時候擷取? 11/30 01:36
6F:→ bigair:PHP的話, date('Y',strtotime($date)) or substr() 11/30 01:38
7F:推 mervynW:SELECT EXTRACT(YEAR FROM '2009-07-02'); => 2009 11/30 01:46
8F:推 susaku:剛剛發現 date('Y',strtotime($date)) 可以分別抓出年月日 11/30 04:50
9F:→ susaku:但是..卻會跳回1970 01 01 = =a? 11/30 04:50
※ 編輯: taurus510 來自: 114.39.56.231 (11/30 09:59)
10F:推 exboyfriend:錯誤訊息還是一樣? 11/30 18:16
11F:→ taurus510:欸錯誤訊息就變成我後來貼的 11/30 20:47
12F:→ taurus510:想請問是其實我日期沒有傳進去嗎?Y 11/30 20:47
13F:→ MOONRAKER:這種訊息看起來是php的錯誤 SQL沒有這種錯誤訊息 11/30 23:11
14F:→ taurus510:謝謝,但是我真的想不出來為什麼查不到@@ 11/30 23:29
15F:→ taurus510:那兩個變數都是<input type=date > 11/30 23:30
16F:→ taurus510:還是接收後要再用 date($_["startdate"])包住呢? 11/30 23:31
17F:→ chrisQQ:你的 sql 有問題,所以根本沒查到… 檢查你的 sql 12/01 00:44
18F:→ taurus510:您好,我試過將變數的地方打成如 '2011-11-25' 12/01 22:18
19F:→ taurus510:這樣的比對是沒問題的 12/01 22:18
20F:→ taurus510:可是換成變數就抓不到@@ 12/01 22:18
21F:→ chrisQQ:那就是表單送出的變數有問題… 12/02 10:10
22F:→ taurus510:你好,可是我echo 出來是有顯示的@@ 12/02 12:02
23F:→ taurus510:請問這樣的日期格式和SQL的相同嗎 12/02 12:03
24F:→ chrisQQ:你 echo 出來的日期長什麼樣? 12/02 16:08
25F:→ taurus510:2011-11-20 12/02 17:04
26F:→ taurus510:如上面這樣子,我在找HTML5的input type=date 12/02 17:04
27F:→ taurus510:不知道這個日期是字串還是怎樣@@ 12/02 17:05
28F:→ taurus510:我用firebig觀察他的DOM發現回傳值是text 12/02 17:13
29F:→ taurus510:噢~不是text,我看錯了 12/02 17:36
30F:→ maplenote:那試試用mysql的DATE()把字串包起來 看可不可以轉成日期 12/03 11:49
31F:推 averywu:分號............ 12/03 14:04
32F:→ ThiefFan: 表單換用html5的date但php抓不到 搜來這篇沒啥幫助 08/11 14:16
33F:→ ThiefFan: 但後來發現問題很蠢 只是因為寫成id=xxxx(應name=xxxx) 08/11 14:16
34F:→ ThiefFan: 而會這樣寫是因為我找html5 date時google給的第一篇文 08/11 14:16