natty

PHP+Foxpro: การ query date

In Foxpro, PHP on September 17, 2008 at 1:08 pm

จากตอนที่แล้ว เรื่องของ Apache + PHP + GD lib + Foxpro + JPGraph ก็มาดูกันต่อในเรื่องการ query date ของ foxpro

จะยกตัวอย่างฟิลด์ date ที่เก็บเป็น yyyy/mm/dd

สมมติว่าเรา query date ขึ้นมา


$sql = "SELECT data_date FROM tablename;
$rs=odbc_exec($conn,$sql);
if (!$rs)
{exit("Error in SQL");}
while (odbc_fetch_row($rs))
{
$data_date = odbc_result($rs,"data_date");
}


หากเราต้องการนำข้อมูล date ดังกล่าวไป query ต่อ สิ่งที่ต้องทำคือ ต้องเปลี่ยน format ของ date นั้นเป็น mm/dd/yyyy เนื่องจากเรากำลังจะใช้คำสั่งในการ query date ของ foxpro คือคำสั่ง ctod (character to date) ซึ่งโดยปกติหากเราต้องการใช้ format ของวันที่ยังคงเป็น yyyy/mm/dd เราจะมีการใช้คำสั่ง set century on ก่อน แต่เนื่องจากเราไม่ได้ใช้คำสั่งนี้ใน PHP เราเลยต้อง parse date ดังกล่าวออกมาเป็น character เพื่อประกอบกับไปให้ได้ตาม mm/dd/yyyy และใช้คำสั่ง ctod ได้

 

(*หมายเหตุ ใน foxpro มีคำสั่งที่คล้าย ctod คือ dtoc (date to character))

สิ่งที่เราจะได้จาก $data_date คือข้อมูล date โดยที่เราสามารถ parse ออกมาได้ดังนี้


$dateparse = date_parse($data_date);
$month = $dateparse ["month"];
$day = $dateparse ["day"];
$year = $dateparse ["year"];

หากเราต้องการนำข้อมูล date ดังกล่าวไป query ต่อแบบไม่ใช้ set century on ทำได้ดังนี้

 


$sql = "SELECT * FROM tablename WHERE data_date >= ctod('" .$month. "/" .$day. "/" .$year. "')";

เพียงเท่านี้เราก็จะหมดปัญหาการ query date ของ foxpro

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: