|
|
|
เปรียบเทียบช่วงเวลาคับ รบกวนด้วยคับ (มือใหม่) เรื่องคำสั่ง sql คับ ถ้าเราจะเอาช่วงของวันที่ที่เรากำหนด รู้แค่ว่าใช้ BETWEEN |
|
|
|
|
|
|
|
อยากรู้เหมือนกัน
|
|
|
|
|
Date :
1 ธ.ค. 2550 11:46:04 |
By :
อิอิ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไม่ต้องใช้ between กะได้
$a="2007-11-20";
$b="2007-11-30";
where date>='$a' and date<='$b'
|
|
|
|
|
Date :
1 ธ.ค. 2550 13:04:55 |
By :
hobbits |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณ คุณ hobbits คับ แต่ว่า date ที่อยู่หลัง where นะคับ ผมหมายถึงว่ามันมี date2ตัว คือ date_start กับ
date_end คือเปงช่วงเวลานะคับ สมมุติในฐานข้อมูลก็เก็บ วันที่ 2007-11-15 ถึง 2007-11-25 ก็คือจะเอาช่วงเวลา
ที่ผู้ใช้ระบุ เช่น 2007-11-20 ถึง 2007-11-22 มาเทียบดูว่ามันอยู่ในช่วงวันที่ที่อยู่ในฐานข้อมูลหรือป่าวนะคับ
ช่วยทีนะคับ..ผมต้องรับทำโปรเจค ขอบคุณคับ..
|
|
|
|
|
Date :
1 ธ.ค. 2550 13:30:26 |
By :
nakhon_sat |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อ่า น่าจะบอกว่าเอาไปใช้ทำอะไรด้วยจะได้เดาถูก
เปงประมาณแบบนึ้รึเปล่า
สมมุติ (อีกแล้ว)
office แห่งหนึ่งมีพนักงานอยู่ 4 คน คือนาย a นาย b นาย c และก็ นาย d
สี่คนนี้จะมีวันทำงานไม่ตรงกัน (อยากมาวันไหนกะมา ว่างั้นเถอะ)
นาย a ทำงานตั้งแต่วันที่ 1-10-2007 ถึงวันที่ 5-10-2007
นาย b ทำงานตั้งแต่วันที่ 3-10-200 ถึงวันที่ 8-10-2007
นาย c ทำงานตั้งแต่วันที่ 2-10-200 ถึงวันที่ 12-10-2007
นาย d ทำงานตั้งแต่วันที่ 10-10-200 ถึงวันที่ 15-10-2007
แล้วต้องการหาพนักงานที่มาทำงานตั้งแต่วันที่ 6-10-2007 ถึงวันที่ 9-10-2007
ก็จะมีอยู่ 2 คนคือนาย b กะนาย c
เปงอย่างงี้ป่าวน้อ
ถ้าอย่างงี้ก็
where date_start>='$a' and date_end<='$b' ไงคะ and มันเปง intersection อยู่แล้ว งิงิ
|
|
|
|
|
Date :
1 ธ.ค. 2550 13:53:43 |
By :
hobbits |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
มันก็ใช้ได้ทั้งสองวิธีล่ะครับ แต่ between จะทำงานได้ตรงกับความต้องการ ในกรณีนี้มากว่า คิดว่านะครับ
ถ้าอยากใช้ between ก็แบบนี้ครับ
select f_name, l_name, age from employee_data where age BETWEEN 32 AND 40;
|
|
|
|
|
Date :
1 ธ.ค. 2550 14:10:47 |
By :
lozomac |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คุณ hobbits คับ ที่เข้าใจถูกแล้วคับ รบกวนคุณ hobbits ช่วยลองดูอีกทีคับในโจทย์ของคุณ ถ้าเราต้องการหา
พนักงานที่มาทำงานวันที่ 13-10-2007 ถึงวันที่ 14-10-2007 ละคับ มันจะออกมาเปงนาย d รึป่าวคับ ขอบคุณคับ...
|
|
|
|
|
Date :
1 ธ.ค. 2550 14:52:10 |
By :
nakhon_sat |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เปงนาย d สิคะ
|
|
|
|
|
Date :
1 ธ.ค. 2550 15:10:56 |
By :
hobbits |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คุณ hobbits คับ แต่ผมลองดูแระ วันที่ 13-10-2007 ถึง 14-10-2007 มันไม่ได้นาย d เลยอะคับ มานไม่มีไรแสดง
เลย ยังไงก็ขอบคุณมากนะคับ ขอบคุณทุกๆท่านด้วยคับที่ให้คำแนะนำ ผมจะลองดูให้ดีๆอีกทีคับ
|
|
|
|
|
Date :
1 ธ.ค. 2550 16:08:58 |
By :
nakhon_sat |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอโทษจิงๆค่ะ โจทย์ถูกแต่คิดผิด 555 นั่งคิดตั้งนาน ได้แบบข้างล่างอะ ลองดูนะ
<?
function dateEStime($theDay,$theMonth,$theYear) {
return mktime(0,0,0,$theMonth,$theDay,$theYear);
}
$a=explode('-',"2007-10-4");
$b=explode('-',"2007-10-8");
$sql="select * from test";
$result=mysql_query($sql);
$row=mysql_fetch_array($result);
do{
$start=explode('-',$row[date_start]);
$end=explode('-',$row[date_end]);
$lstart=dateEstime($start[2],$start[1],$start[0]);
$n=dateEstime($a[2],$a[1],$a[0]);
$lend=dateEstime($end[2],$end[1],$end[0]);
$n2=dateEstime($b[2],$b[1],$b[0]);
if($n>=$lstart&&$lend<=$n2){
echo $row[name]; echo"<br>";
}
}while($row=mysql_fetch_array($result)); ?>
|
|
|
|
|
Date :
1 ธ.ค. 2550 17:22:49 |
By :
hobbits |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณคับ คุณ hobbits งั้นผมขอลองดูก่องนะ thank you very much..........
|
|
|
|
|
Date :
1 ธ.ค. 2550 19:53:06 |
By :
nakhon_sat |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมสนใจอยู่คับ
อยากได้เป็น SQL มากกว่าคับ ไม่ใช่ php
ใครช่วยตอบหน่อยคับ
|
|
|
|
|
Date :
2012-03-01 10:47:16 |
By :
tometxhais |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|