|
|
|
รบกวนด้วยค่ะ ถ้าต้องการนำข้อมูลในฟิลด์วันเริ่มและวันสุดท้ายมาโชว์ |
|
|
|
|
|
|
|
ใช้ between ดูยังอะครับ
แต่ความจริงใช้ where (startdate >= '2010-11-01' AND enddate <= '2010-11-11')
ก็น่าจะได้มั้ง
|
|
|
|
|
Date :
2010-08-14 16:48:46 |
By :
compeng |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองแล้วค่ะ between
มันจะโชว์ว่ามีค่าอะไรบ้างที่อยู่ระหว่าง startdate กับ enddate
หรือว่าเราต้องเอาค่าระหว่าง startdate ลบกับ enddate และจะได้ระยะเวลาของวัน แล้วนำมาคำนวณต่อใน php ค่ะ
หรือว่ามีวิธีดีๆกว่านี้ช่วยแนะนำด้วยนะค่ะ จะตายแล้ว
|
ประวัติการแก้ไข 2010-08-14 17:06:39
|
|
|
|
Date :
2010-08-14 17:05:49 |
By :
มิ้วกี้ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตามคุณ King_R_Ther น่าจะได้นะครับ ถ้าฟิวเก็บวันที่ไม่เปง varchar เฉยๆ นะครับ ต้องเก็บเป็น datetime นะครับลองดูครับ
|
|
|
|
|
Date :
2010-08-14 19:11:14 |
By :
mflutoday |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (VB.NET)
CREATE TABLE `datetest` (
`p_id` varchar(25) NOT NULL default '',
`p_name` varchar(255) default NULL,
`startdate` date default NULL,
`enddate` date default NULL,
PRIMARY KEY (`p_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
--------------
INSERT INTO `datetest` VALUES ('p_001', 'peak season', '2010-08-14', '2010-08-17');
นี่ค่ะ database ใช้ between ก็ไม่ได้อยู่ดีอ่ะค่ะ
|
|
|
|
|
Date :
2010-08-14 19:40:35 |
By :
milky จำpwd ไม่ได้อ่ะ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อยากให้มันออกมาในรูปแบบนี้ค่ะ
p_name date
peak season 2010-11-01
peak season 2010-11-02
จนถึง
date
2010-11-11
นะค่ะ
|
|
|
|
|
Date :
2010-08-14 19:51:44 |
By :
milky จำpwd ไม่ได้อ่ะ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
SELECT *
FROM datetest a
WHERE
a.startdate <='2010-08-15' AND a.enddate >= '2010-08-17'
ลองอีกทีเจ้า
|
|
|
|
|
Date :
2010-08-14 19:59:54 |
By :
mflutoday |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไม่ได้อ่ะค่ะ หรือว่า จะให้โชว์ค่าที่อยู่ในระหว่าง field ไม่ได้ เอาแค่วันที่ที่อยู่ใน
field startdate กับ enddate นะค่ะ ทั้งสองฟิลด์เป็น type date ค่ะ
เช่น startdate = 2010-11-01 และ enddate= 2010-11-11 มันจะห่างอยู่ 11 วัน;
ให้แสดงผลออกมาแบบนี้ค่ะใน mysql นะค่ะ
2010-11-01
2010-11-02
จนถึง
2010-11-11
|
|
|
|
|
Date :
2010-08-14 20:08:58 |
By :
milky จำpwd ไม่ได้อ่ะ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ยัง งง นะคับ
สมมุตินะคับ data ใน mysql
1. aaa bbb 2010-08-01 2010-08-10
2. aaa bbb 2010-08-03 2010-08-18
3. aaa bbb 2010-08-09 2010-08-30
4. aaa bbb 2010-08-10 2010-08-11
5. aaa bbb 2010-08-16 2010-08-20
ถ้าผมใช้
a.startdate <='2010-08-01' AND a.enddate >= '2010-08-20'
ข้อมูลที่ออกมาก่จะเป็น 1,2,4,5
แต่ถ้าใช้
a.startdate <='2010-08-10' AND a.enddate >= '2010-08-20'
ข้อมูลที่ออกมาก่จะเป็น 4,5
a.startdate <='2010-08-01' AND a.enddate >= '2010-08-30'
มันก็จะออกมาหมด ซึ่งผมว่ามันน่าจะถูกละนะคับ หรือผมยังไม่เข้าใจวัตถุประสงค์ครับลองตอบมาอีกทีนะครับ สู้ๆ ครับ
ปอจัง
|
|
|
|
|
Date :
2010-08-14 20:21:44 |
By :
mflutoday |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
โอเคค่ะ งั้นเอาใหม่นะค่ะ พอมานั่งคิดดูดีๆๆเรานี่พิมพ์ไรกำกวมมากๆ
ก็คือ งานที่เราทำอยู่่เราจะให้สมาชิกใส่ค่า startdate ที่รับมาจาก calerdar และให้สมาชิกทำการเลือกว่าจะใส่กี่วัน และทำการ insert ค่าลงฐานข้อมูลโดยที่ข้อมูลทีเ่ป็น enddate ได้ืำทำการแปลงค่าเปน date แล้วอัพลงไปแล้วนะค่ะ
แล้วคราวนี้สิ่งที่เราอยากทราบว่า เราสามารถที่จะนำ ค่า startdate นั้นมารันออกมาเป็นวันๆๆ จนถึง วันที่สิ้นสุดหรือก็คือ enddate นะค่ะได้หรือไม่
พอดีกำลังจะวางแพลนการเขียนน่ะค่ะ ว่า mysql สามารถที่จะได้ไหม
|
|
|
|
|
Date :
2010-08-14 20:36:08 |
By :
milky จำpwd ไม่ได้อ่ะ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แอดเอ็มมานะครับดูเหมือนจะต้องคุยยาว [email protected] สู้ๆครับ
|
|
|
|
|
Date :
2010-08-14 20:57:19 |
By :
mflutoday |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เยี่ยมเลยครับคุณ iieszz มาเสนอแบบ DB อีกทางครับ อิอิ มาช่วยกันสร้างสังคมแห่งการเรียนรู้เนอะๆ
Code (PHP)
$conn=@mysql_connect("localhost","root","root");
$db=@mysql_select_db("member");
mysql_query("CREATE TEMPORARY TABLE calendar (c_date DATE);");
mysql_query("DELIMITER $$ ");
mysql_query("
CREATE PROCEDURE sp_createcalendar()
BEGIN
DECLARE i INT DEFAULT 0 ;
DECLARE j INT DEFAULT 1 ;
DECLARE startdate DATE;
SELECT CURDATE() INTO startdate;
SELECT DATEDIFF('2010-08-22',CURDATE()) INTO j;
WHILE i<=j DO
INSERT INTO calendar SELECT DATE_ADD(startdate,INTERVAL i DAY);
SET i=i+1;
END WHILE;
END") ;
mysql_query("DELIMITER ;");
mysql_query("CALL sp_createcalendar();");
$query=mysql_query("SELECT * FROM calendar");
while($rs=@mysql_fetch_array($query))
{
echo $rs["c_date"];
echo "<br>";
}
mysql_query("DROP PROCEDURE IF EXISTS sp_createcalendar;");
mysql_query("DROP TABLE IF EXISTS calendar;");
|
|
|
|
|
Date :
2010-08-15 00:46:11 |
By :
mflutoday |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณทั้งสองท่านมากๆๆค่ะ
|
|
|
|
|
Date :
2010-08-15 13:00:21 |
By :
milky จำpwd ไม่ได้อ่ะ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|