Fri 29 Jun 2007 02:06:39
ผมจะเก็บเวลาอะครับแต่มีปัญหาว่าจะเก็บแบบไหนดี และควรGEN เวลารูปแบบไหนดี
ผมเห็นใน PhpMyadmin มี Type ของเวลาอยู่ครับ น่าจะเป็น Date ผมไม่รู้ว่าจะเก็บลักษณะไหนดีคับ สำหรับ Type นี้ เวลาGen จาก PHP ควรเป็นแบบไหน 29/06/2005 หรือ 29-06-2005 ที่จะใช้กับ Date ได้
ขอคำแนะนำเพิ่มเติมด้วยนะครับ
ขอบพระคุณล่วงหน้าครับ
Fri 29 Jun 2007 11:03:05
- Date เก็บข้อมูลชนิดวันที่ (3 bytes)
- Datetime เก็บข้อมูลชนิดวันที่และเวลา (8 bytes)
- Time เก็บข้อมูลชนิดเวลา (3 bytes)
- Timestamp เก็บข้อมูลชนิด Unix Timestamp (4 bytes)
- Year เก็บข้อมูลชนิดปี (1 byte)
ประโยชน์ของการใช้ field ที่ถูกต้องในการเก็บคือสามารถคำนวน หรือจัดรูปแบบ ด้วยภาษา SQL ได้ใน query เดียวกัน
Sun 1 Jul 2007 04:23:55
ยังง อยู่ครับ
แต่ก่อนผม Gen จากฟังชั่น Date มา สมุตติ 1/07/2005 ผมก็เก็บใส่ตัวแปรตัวหนึ่ง
เวลา insert เข้าฐานข้อมูล ผมจะเลือก Type เป็น Varchar อะครับ
ก็เลยไม่รู้ว่า Type Date จะเอาตัวแปรที่ผมเก็บมา ใส่ไปได้ไหม
รบกวนด้วยนะครับ
Sun 1 Jul 2007 11:48:07
field dt(datetime) ต้องการเก็บ เวลาปัจจุบัน INSERT INTO table_name(dt) VALUES(NOW())
field dt(datetime) ต้องการเก็บเวลาในอีก 8 วันข้างหน้า INSERT INTO table_name(dt) VALUES(DATE_ADD(NOW(), INTERVAL 8 DAY))
ดังนั้นไม่มีความจำเป็นที่จะต้องสร้าง date จาก script เพื่อ insert เข้าไปครับ แต่ถ้ามันจำเป็นจริงๆก็ สามารถใช้ STR_TO_DATE('1/07/2005', '%e/%m/%Y') ในการ convert ได้ครับ
Wed 4 Jul 2007 18:41:26
ขอบคุณมากนะครับ กระจ่างเลยครับ ขอบคุณครับ
Tue 8 Jan 2008 14:08:35
แล้วถ้าจะ update ละครับ ต้องเขียนโค้ดอย่างไรครับ ผมประยุกต์ไปใช้แล้ว แต่ไม่ได้อะครับ แนะนำหน่อยครับ
Tue 8 Jan 2008 14:11:35
คือจะ update ทั้งวันและเวลาครับ Value มันเก็บลักษณะนี้ 0000-00-00 00:00:00
ในฐานข้อมูลเก็บเป็นประเภท datetime
Tue 8 Jan 2008 14:39:16
UPDATE ... date_field=NOW()
UPFATE ... date_field=DATEADD(NOW(), INTERVAL 10)
ฯลฯ
Wed 9 Jan 2008 16:18:12
ขอบคุณมากๆ ครับ ใช้ได้ละ
Wed 9 Jan 2008 17:24:58
ผมเจอปัญหาต่อเนื่องอะครับ คือว่าจะเอาข้อมูลในวันที่ต้องการออกมาแสดง แต่ไม่รู้จะเขียนโค้ดยังไง
ตารางชื่อ Product ฟลิด์ที่เก็บวันเวลาชื่อ Recieved ครับ
<?php
$sql = "USE Project;";
$result = mysql_query($sql);
$sql = "select * from Product where Recieved=______;";
?>
ตรง _______ คือผมไม่รู้ว่าต้องเขียนโค้ดอย่างไรอะครับ
Wed 9 Jan 2008 18:25:11
ผมลองใส่โคด้นี้ดู
<?php
$sql = "USE Project;";
$result = mysql_query($sql);
$sql = "select * from product where Recieved like '2008-01-09 16:24:15' ;";
$result = mysql_query($sql);
echo mysql_result($result, 0, "brand");
?>
มันแสดงผมออกมาครับ แต่ว่าผมต้องการใช้คีย์แค่ '2008-01-09 ไม่มีเวลานะครับ ไม่ทราบว่าต้องใส่โคด้ยังไง
Thu 10 Jan 2008 07:27:18
SELECT ... WHERE Recieved=STR_TO_DATE('2008-01-09', '%Y-%m-%d')
ปล. การเปรียบเทียบ varchar ไม่ควรใช้ like ถ้าไม่ได้ใช้ในการค้นหา
Tue 29 Jan 2008 18:27:01
Tue 29 Jan 2008 19:05:00
Wed 30 Jan 2008 00:21:42
function displaydate($x)
{
$thai_m=array("มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน",
"ธันวาคม");
$date_array=explode("-",$x);
$y=$date_array[0];
$m=$date_array[1]-1;
$d=$date_array[2];
$m=$thai_m[$m];
$y=$y+543;
$displaydate="$d $m $y";
return $displaydate;
}
code เป็นแบนี้อ่ะคะมันไม่เห็นเก็บค่าเลยอ่ะค่ะ
Wed 30 Jan 2008 12:16:52
Wed 30 Jan 2008 14:16:04
Wed 30 Jan 2008 16:04:09
Wed 30 Jan 2008 18:38:09
ส่วนท่านที่สอบถามเรื่อง source code นั้นขออภัยด้วยครับ ทางเราไม่มีนโยบายแจกปลาครับ เราสอนแต่วิธีจับปลาและการใช้เครื่องมือหาปลาครับ
Wed 28 May 2008 11:31:28
str_to_date(FieldDateName,'%d-%m-%Y %H:%i:%s'
ประมาณนี้ค่ะ รบกวนด้วยนะคะ
ขอบคุณค่ะ
Wed 28 May 2008 14:01:32
Sat 31 May 2008 13:28:14
ที่ทำให้ผมได้กระจ่างมากยิ่งขึ้น ขอบพระคุณ จริงๆๆครับ

















