Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > PHP > PHP Forum > รบกวนถามเรื่อง Search วันที่ โดยใช้ Between ครับ มันค้นหาไม่เจอ



 

รบกวนถามเรื่อง Search วันที่ โดยใช้ Between ครับ มันค้นหาไม่เจอ

 



Topic : 062968



โพสกระทู้ ( 426 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook



รบกวนถามเรื่อง Search วันที่ โดยใช้ Between ครับ มันค้นหาไม่เจอ
date
1. ผมเก็บในฟิวส์ CreatedBy เป็น varchar ไม่ได้เป็น date เช่น 07-07-2011 10:12:22 อย่างงี้มันจะค้นหาโดยใช้ between ระหว่าง 07-07-2011 between 07-07-2011 เจอไหมครับ
2. ผมลองเขียนดูแล้วนะครับ มันค้นหาไม่เจอ ฝากรบกวนช่วยดูหน่อยนะครับ จะส่ง 14 นี้แล้วครับ
Code (PHP)
<th align="right">วันที่บันทึก : </th>
<td><input type="text" name="dateInput" id="dateInput" size="17"/><? include("date.txt"); ?>&nbsp;&nbsp;&nbsp;ถึง&nbsp;&nbsp;&nbsp;<input type="text" name="dateInput2" id="dateInput2" size="17"/><? include("date2.txt"); ?></td>

$strSQL = "SELECT  * FROM animal  WHERE Enable='T' and CreatedBy between '".$_GET['dateinput']."' and '".$_GET['dateinput2']."' ";
if($_GET["dateinput"]!= "")
{
$strSQL .= " and (CreatedBy LIKE '%".$_GET["dateinput"]."%') ";
}
if($_GET["dateinput2"]!= "")
{
$strSQL .= " and (CreatedBy LIKE '%".$_GET["dateinput2"]."%') ";
}
$objQuery = mssql_query($strSQL) or die ("Error Query [".$strSQL."]") ;




Tag : PHP, Ms SQL Server 2008









ประวัติการแก้ไข
2011-07-10 13:40:04
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2011-07-10 13:39:33 By : MyZeus View : 18686 Reply : 14
 

 

No. 1



โพสกระทู้ ( 1,025 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์
Twitter Facebook Hi5 Blogger

ลองแบบนี้ดูครับ
Code
<th align="right">วันที่บันทึก : </th>
<td><input type="text" name="dateInput" id="dateInput" size="17"/><? include("date.txt"); ?>&nbsp;&nbsp;&nbsp;ถึง&nbsp;&nbsp;&nbsp;<input type="text" name="dateInput2" id="dateInput2" size="17"/><? include("date2.txt"); ?></td>

$strSQL = "SELECT * FROM animal WHERE Enable='T' AND (CreatedBy BETWEEN '".$_GET['dateinput']."' AND '".$_GET['dateinput2']."') ";
if($_GET["dateinput"]!= "")
{
$strSQL .= " and (CreatedBy LIKE '%".$_GET["dateinput"]."%') ";
}
if($_GET["dateinput2"]!= "")
{
$strSQL .= " and (CreatedBy LIKE '%".$_GET["dateinput2"]."%') ";
}
$objQuery = mssql_query($strSQL) or die ("Error Query [".$strSQL."]") ;







แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-07-10 14:00:42 By : adaaugusta
 


 

No. 2



โพสกระทู้ ( 426 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ขอบคุณครับ แต่ไม่ขึ้นครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-07-10 14:21:22 By : MyZeus
 

 

No. 3



โพสกระทู้ ( 426 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

echo strSQL;
SELECT * FROM animal WHERE Enable='T' AND (CreatedBy BETWEEN '' AND '') and ... ลอง echo strSQL มาแล้วครับ ค่า GET ไม่ส่งเข้าไป ช่วยหน่อยนะครับ = =+
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-07-10 15:15:32 By : MyZeus
 


 

No. 4



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ทำไมถึงอ่าน $_GET ครับ ลองใช้ $_POST ดูครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-07-10 16:32:05 By : webmaster
 


 

No. 5



โพสกระทู้ ( 426 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

echo strSQL;
SELECT * FROM animal WHERE Enable='T' and (CreatedBy BETWEEN '07-07-2011' and '07-07-2011') and (IsActive LIKE '%2%') and (CreatedBy LIKE '%07-07-2011%') and (CreatedBy LIKE '%07-07-2011%')
แต่สิ่งที่ค้นหามันไม่ขึ้นมาอะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-07-10 16:34:02 By : MyZeus
 


 

No. 6



โพสกระทู้ ( 426 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

$_POST ค้นหาไม่ขึ้นครับ SELECT * FROM animal WHERE Enable='T' and (CreatedBy BETWEEN '' and '') รับค่า POST ไม่เข้าครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-07-10 17:01:24 By : MyZeus
 


 

No. 7



โพสกระทู้ ( 1,463 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Blogger

ถ้าเก็บเป็น date นะครับดูข้อ 9 ได้เลย
http://web-programming-bookmark.blogspot.com/2010/11/mysql-complex-query.html


แต่เก็บเป็น varchar ปกติควรจะจัดเก็บ string ให้เป็นแบบนี้ครับ yyyy-mm-dd

แต่เก็บเป็นแบบ
07-07-2011 หรือ dd-mm-yyyy แบบนี้จะต้องแปลงกลับให้เป็น 2011-07-07 ทั้งหมดก่อน
(yyyy-mm-dd ทั้ง field db และ ข้อมูลเปรียบเทียบแล้วค่อยมาเปรียบเทียบกันครับ)

เพราะการเปรียบเทียบแบบ string ตามหลักแล้วจะต้องนับจากหลักแรกสำคัญสุด และเปรียบเทียบหลักที่สองต่อ...
และเพื่อให้เปรียบเทีบกับวันที่สองวันที่ได้ ความยาว string จะต้องเท่ากันด้วยเพื่อจะได้เปรียบเทียบตรงหลักกัน
อย่างเช่น 2011-07-07 กับ 2011-8-8 จะต้องแปลงเป็น 2011-08-08 ก่อนที่จะมาเปรียบเทียบกันครับ

ดังนั้นต้องหา function
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html
แปลงค่าฟิลด์และตัวแปรให้ถูกต้องตามนี้ด้วยครับ


ประวัติการแก้ไข
2011-07-10 17:03:01
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-07-10 17:01:57 By : num
 


 

No. 8



โพสกระทู้ ( 426 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ในฐานข้อมูลผมเป็น ชื่อฟิวส์ CreatedBy varchar(255) ในฟิวส์เก็บข้อมูล 16-06-2011 ที่นี้ลองกดปฏิทินเพื่อค้นหาระหว่างวันที่ 16-06-2011 ถึง 16-06-2011 ก็ไม่ขึ้นครับ
Code (PHP)
$strSQL = "SELECT * FROM animal WHERE Enable='T' and (CreatedBy BETWEEN '".$_GET['dateInput']."' and '".$_GET['dateInput2']."') ";
if($_GET["txtKeyword"]!= "")
{
$strSQL .= " and (ThaiName LIKE '%".$_GET["txtKeyword"]."%' or EngName LIKE '%".$_GET["txtKeyword"]."%') ";
}
if($_GET["IsActive"]!= "")
{
$strSQL .= " and (IsActive LIKE '%".$_GET["IsActive"]."%') ";
}
if($_GET["txtKeyword2"]!= "")
{
$strSQL .= " and (Created LIKE '%".$_GET["txtKeyword2"]."%') ";
}
if($_GET["txtKeyword3"]!= "")
{
$strSQL .= " and (Updated LIKE '%".$_GET["txtKeyword3"]."%') ";
}
if($_GET["dateInput"]!= "")
{
$strSQL .= " and (CreatedBy LIKE '%".$_GET["dateInput"]."%') ";
}
if($_GET["dateInput2"]!= "")
{
$strSQL .= " and (CreatedBy LIKE '%".$_GET["dateInput2"]."%') ";
}
$objQuery = mssql_query($strSQL) or die ("Error Query [".$strSQL."]") ;

desk
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-07-10 17:32:04 By : MyZeus
 


 

No. 9



โพสกระทู้ ( 1,463 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Blogger

เป็น mssql หรือครับ ก็คล้ายๆ กันครับ

ถ้า createby เก็บ 01-01-2011 และต้องการเปลี่ยนเป็น 2011-01-01 จะเขียนแบบนี้ครับ

$date1 = '2011-01-01'; ถ้าข้อมูลไม่ใช่ yyyy-mm-dd ต้องแปลงให้เหมือนกัน
$date2 = '2011-02-02';

$sql = "
select * from animal where
SUBSTRING(CreatedBy,6,4)+'-'+ SUBSTRING(CreatedBy,3,2)+'-'+ SUBSTRING(CreatedBy,0,2) >= '$date1'
AND
SUBSTRING(CreatedBy,6,4)+'-'+ SUBSTRING(CreatedBy,3,2)+'-'+ SUBSTRING(CreatedBy,0,2) >= '$date2'
";


ประวัติการแก้ไข
2011-07-10 18:27:00
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-07-10 18:26:10 By : num
 


 

No. 10



โพสกระทู้ ( 426 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ขอบคุณทุกคนที่ช่วยเหลือนะครับ แต่ยังไม่ขึ้นเลยครับ เหลือแต่แค่ค้นหาระหว่างวันที่นี้ถึงวันที่นี้เท่านั้นเอง
ผมลองปรับ yyyy-mm-dd แล้วนะครับ มันเป็น 20112011-07-7 แต่ถ้า yy-mm-dd มันก็เป็น 2011-07-7
- เราไม่สมควรเก็บวันที่รวมกับเวลาในช่องฟิวส์เดียวกันใช่ไหมครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-07-10 20:17:03 By : MyZeus
 


 

No. 11



โพสกระทู้ ( 11,835 )
บทความ ( 10 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


เก็บผิด type ก็ปวดใจแบบนี้แหละครับ date ก็ควรเก็บเป็น date
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-07-10 20:36:51 By : PlaKriM
 


 

No. 12



โพสกระทู้ ( 426 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

เก็บเป็น date แล้วครับ แต่ error
Warning: mssql_query() [function.mssql-query]: message: Conversion failed when converting date and/or time from character string. (severity 16) in C:\AppServ\www\1799\animal_show.php on line 122

Warning: mssql_query() [function.mssql-query]: Query failed in C:\AppServ\www\1799\animal_show.php on line 122
Error Query [SELECT * FROM animal WHERE Enable='T' AND (CreatedBy BETWEEN '04-07-2011' AND '20-07-2011') and (IsActive LIKE '%1%') ]
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-07-10 20:58:36 By : MyZeus
 


 

No. 13



โพสกระทู้ ( 11,835 )
บทความ ( 10 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


เก็บเป็น date แล้วยังไม่พอครับ ต้องแปลงให้เป็น Y-m-d ด้วย

SELECT * FROM animal WHERE Enable='T' AND (CreatedBy BETWEEN '2011-07-04' AND '2011-07-20')
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-07-10 21:25:10 By : PlaKriM
 


 

No. 14



โพสกระทู้ ( 426 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ขอบคุณครับ ได้แล้วครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-07-10 23:05:00 By : MyZeus
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : รบกวนถามเรื่อง Search วันที่ โดยใช้ Between ครับ มันค้นหาไม่เจอ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 04
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่