|
|
|
ใครมีตัวอย่างการตรวจสอบวันที่ที่ได้ไปเปรียบเทียบกับ วันที่ที่เก็บใน database บ้างคะ รบกวนแนะนำบ้างคะ |
|
|
|
|
|
|
|
Code (PHP)
$paymoneyday ="";
$creditterm= $objResult["creditterm"];
if($creditterm=="003"){
$maxday = cal_days_in_month(CAL_GREGORIAN, date(m), date(d));
$today = date('d/m/Y');
$day_pay = date('d')+3; //กำหนดวันในการจ่ายเงินให้ลูกค้าภายใน 3 วัน
if($day_pay > $maxday)
{
$day_pay = $day_pay - $maxday;
$month_pay = date('m')+1;
if($month_pay > 12)
{
$month_pay = $month_pay-12;
$year_pay = date('Y')+1;
}
else//if($month_pay > 12)
{
$year_pay = date('Y');
}//if($month_pay > 12)
}
else
{
$month_pay = date('m');
$year_pay = date('Y');
}
$paymoneyday = $day_pay.'/'.$month_pay.'/'.$year_pay;
}
พอคำนวนมาแล้วหนูก็จะได้ค่า paymoneyday fomate ค่าแบบนี้คะ 11/04/2014 แล้วหนูอยากไปเลือกวันที่ในฐานข้อมูลที่เก็บวันที่เฉพาะวันพุธของทุก ๆ เดือนทุก ๆ อาทิตย์ เอาไว้ ซึ่งเก็บเป็น format แบบเดียวกันคะ
ในฐานข้อมูลจะเก็บค่าเฉพาะวันที่ที่เป็นวันพุธคะ
วันพุธที่ 14/05/2014
วันพุธที่ 21/05/2014
วันพุธที่ 27/05/2014
แล้งหนูอยากเลือกวันพุธที่มาก่อน คือวันที่ใกล้เคียงกับวันที่ที่คำนวณได้นะคะ
รบกวนแนะนำด้วยคะ ขอบคุณคะ
|
|
|
|
|
Date :
2014-05-13 23:27:09 |
By :
แอน |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เอาหลักการก่อนละกันนะ รูปแบบวันที่ควรจะเป็น yyyy-mm-dd
อย่างเช่น 14/05/2014 ต้องเก็บเป็น 2014-05-14 จะได้เป็นมาตรฐานและใช้ฟังก์ชั่นของ MySQL ได้
ถ้าอยาก "เลือกวันพุธที่มาก่อน" 2014-04-01 ก็ใช้ WHERE ฟิลด์วันที่ < '2014-04-01'
|
|
|
|
|
Date :
2014-05-13 23:47:29 |
By :
{Cyberman} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณคะ แต่หนูไม่ค่อยเข้าใจคะ ขอโทษคะ หนูยังไม่เก่งจริง ๆ พี่พอมีตัวอย่างไม๊คะ
|
|
|
|
|
Date :
2014-05-14 09:10:08 |
By :
แอน |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ในการบันทึกวันที่ลงในฐานข้อมูลแล้วเอามาใช้ในการเรียกดูข้อมูลของ MySQL ต้องเก็บข้อมูลวันที่เป็น format yyy/mm/dd หรือ Y/m/d หรือง่ายๆ รูปแบบแบบนี้ => 2014/05/13 หรือ 2014-05-13 รูปแบบอื่นไม่น่าจะใช้ค้นหาข้อมูลได้
ก่อน insert วันที่ลงฐานข้อมูลให้ทำการแปลงรูปแบบก่อน เช่น
$paymoneyday = $day_pay.'/'.$month_pay.'/'.$year_pay; /// $paymoneyday จะมีค่าเป็น 11/04/2014
แต่ก่อนจะ insert เข้าฐานข้อมูลต้องแปลงรูปแบบก่อน
$new_paymenyday = date('Y/m/d', $paymoneyday); /// $paymoneyday จะมีค่าเป็น 2014/04/11
$sql = "INSERT INTO some_table (date_field) VALUES ($new_paymenday)";
ทีนี้เวลาเรียกใช้ก็ใช้ WHERE date_field = < '2014/04/11'
|
|
|
|
|
Date :
2014-05-14 17:03:19 |
By :
touch08 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ค้าาาา หนูเปลี่ยน format วันที่แล้วคะ และตอนเรียกใช้หนูจะเอาวันที่ที่มันมากกว่าวันที่หนูคำนวนได้ เช่น หนูบวก credit term แล้ว หนูได้วันที่เป็น 2014/05/17 แล้วค่าที่เก็บใน Database เป็น
2014/05/21
2014/05/28
แล้วหนูจะเลือกเอาวันที่ 2014/05/21 ที่มันมากกว่าวันที่ 2014/05/17 ที่หนูคำนวณบวก creditterm แล้ว หนูจะไม่ให้มันตกวันที่ 2014/05/28 หนูต้อง select ไงคะ
WHERE date_field = < อะไรเหรอคะ
|
|
|
|
|
Date :
2014-05-14 17:23:17 |
By :
แอน |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
วันที่ 2014/05/21 มีค่ามากกว่าวันที่ได้ 2014/05/17
ถ้าจะเลือกข้อมูลที่มากกว่าจะต้องเป็น
WHERE date_field >= '2014/05/17'
|
|
|
|
|
Date :
2014-05-14 18:19:53 |
By :
{Cyberman} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
วิธีง่าย ๆ ครับผม
Select Top(1) date_field From table_date where date > '2014-05-17'
Top (1) คือการเลือกเอา ข้อมูลแแถวแรกที่เรา Select มาได้ นั่นหมายถึง
หากเรามีข้อมูลแบบนี้
1. '2014-01-01'
2. '2014-01-08'
3. '2014-01-15'
4. '2014-01-22'
ถ้าเรา Where > '2014-01-08'
ข้อมูลจะออกมาเป็น
3. '2014-01-15'
4. '2014-01-22'
แต่ในคำสั่งที่ให้ไปคือการเอาอันแรก นั่นคือ 3. '2014-01-15'
ครับผม
|
|
|
|
|
Date :
2014-05-15 15:14:26 |
By :
INTz |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|