ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingต้องการเปลี่ยนฐานข้อมูล วันที่จาก dd/mm/yyyy เป็น yyyy-mm-dd ทำยังไงครับ
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: ต้องการเปลี่ยนฐานข้อมูล วันที่จาก dd/mm/yyyy เป็น yyyy-mm-dd ทำยังไงครับ  (อ่าน 3527 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
rungroat4
สมุนแก๊งเสียว
*

พลังน้ำใจ: 19
ออฟไลน์ ออฟไลน์

กระทู้: 544



ดูรายละเอียด เว็บไซต์
« เมื่อ: 24 กันยายน 2011, 00:40:00 »

เดิมผมทำฐานข้อมูลวันที่ ไว้เป็น แบบ text ครับ
เก็บในรูปแบบ dd/mm/yyyy เอาไว้

ทีนี้พอ ต้องการให้มันแสดงแบบเรียงลำดับ มันแสดงไม่ถูกต้องครับ

อยากจะเปลี่ยนให้เป็น ข้อมูล date ให้ถูกต้อง เป็น yyyy-mm-dd

ผมจะเปลี่ยนทั้งฐานข้อมูล เลยทำยังไงครับ

ตอนนี้ มืดแปดด้านแล้วครับ

ขอบคุณล่วงหน้าครับ

บันทึกการเข้า

นาฬิกา เท่ห์ ๆ ของแท้ ราคาถูก ประกันศูนย์
AbuseMan
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 104
ออฟไลน์ ออฟไลน์

กระทู้: 1,103



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 24 กันยายน 2011, 01:19:09 »

ผมว่าแปลงมันทั้งหมดเป็น timestamp ดีกว่าไหมครับ
บันทึกการเข้า

ฟังเพลงออนไลน์ : เว็บเพลงออนไลน์ที่คุณขอฟังเพลงได้ด้วยตัวคุณเอง
ห้องแชท : บริการฟรีห้องแชทสำหรับติดเว็บ
เพลงใหม่ : เพลงใหม่ เพลงฮิต
บ้านคุ้มค่า : ลงประกาศขายบ้าน ที่ดิน พร้อมอัพเดทโครงการบ้านและคอนโดใหม่ที่น่าสนใจ
marus
ก๊วนเสียว
*

พลังน้ำใจ: 41
ออฟไลน์ ออฟไลน์

กระทู้: 467



ดูรายละเอียด
« ตอบ #2 เมื่อ: 24 กันยายน 2011, 04:28:17 »

คงต้องสร้าง field ใหม่ แล้วดึงข้อมูลมาแก้ทีล่ะ record แล้ว save ลงไป field ใหม่
บันทึกการเข้า
Give_Me
Newbie
*

พลังน้ำใจ: 7
ออฟไลน์ ออฟไลน์

กระทู้: 69



ดูรายละเอียด
« ตอบ #3 เมื่อ: 24 กันยายน 2011, 05:22:14 »

ใช้การ update โดย SubString และ concat เอาจาก field เดิมครับ
บันทึกการเข้า
seowizard
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 102
ออฟไลน์ ออฟไลน์

กระทู้: 1,119



ดูรายละเอียด เว็บไซต์
« ตอบ #4 เมื่อ: 24 กันยายน 2011, 07:53:11 »

ไปแก้ data type ของ field ให้เป็น Datetime หรือ Timestamp ก่อนครับ  มันถึงจะ sort ให้
บันทึกการเข้า
หนุกหนาน
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 106
ออฟไลน์ ออฟไลน์

กระทู้: 1,243



ดูรายละเอียด
« ตอบ #5 เมื่อ: 24 กันยายน 2011, 07:58:40 »

สร้างฟีลด์ใหม่ในตารางก่อนครับเลือกเป็นแบบ date เลย
แล้วสร้างโค้ด php เพื่อ select ข้อมูลจากฟีลด์เดิมที่เป็นแบบ text มาจัดรูปแบบให้เป็น date ที่ถูกต้อง แล้วเก็บใส่ฟีลด์ที่เป็นแบบ date
แล้วไปลบฟีลด์แบบ text เดิมซะ
แล้วเปลี่ยนชื่อฟีลด์ที่เป็นแบบ date ให้เป็นชื่อที่ต้องการ
บันทึกการเข้า
redmaster
ก๊วนเสียว
*

พลังน้ำใจ: 28
ออฟไลน์ ออฟไลน์

กระทู้: 432



ดูรายละเอียด
« ตอบ #6 เมื่อ: 24 กันยายน 2011, 10:05:56 »

ฟีดข้อมูลออกมาโดย Loop ไปเรื่อยๆ
ในการฟีดแต่ละเรคคอร์ด ก็เอาผลลัพธ์ที่ได้เอามาแก้โดยใช้คำสั่ง php ช่วยในการแก้จาก / เป็น - และการสลับตำแหน่ง
พอแก้เสร็จก็อัพเดทกลับเข้า DB

-..- ไม่เก่งนะ แต่ผมมีปัญหาจากการออกแบบ DB บ่อยๆเพราะออกแบบไม่ดีตั้งแต่แรกเลยต้องแก้เอาแบบนี้แหละ
บันทึกการเข้า
rungroat4
สมุนแก๊งเสียว
*

พลังน้ำใจ: 19
ออฟไลน์ ออฟไลน์

กระทู้: 544



ดูรายละเอียด เว็บไซต์
« ตอบ #7 เมื่อ: 24 กันยายน 2011, 10:23:21 »

ขอตัวอย่างcode php
ในการ update. Field ทั้งหมด
โดยการ run ครั้งเดียวครับ

ขอบคุณทุกท่านที่เข้ามาตอบให้ครับ
บันทึกการเข้า

นาฬิกา เท่ห์ ๆ ของแท้ ราคาถูก ประกันศูนย์
redmaster
ก๊วนเสียว
*

พลังน้ำใจ: 28
ออฟไลน์ ออฟไลน์

กระทู้: 432



ดูรายละเอียด
« ตอบ #8 เมื่อ: 24 กันยายน 2011, 10:40:03 »

โค๊ด:
$sql="select date from xxx";
$table=mysql_query($sql,$Conn) or die ("ไม่สามารถเรียกดูข้อมูลได้");
while($row=mysql_fetch_array($table)){


$edate = explode("/", $row[date]);
$dateE="$edate[2]"."-"."$edate[1]"."-"."$edate[0]";

echo "Edit $row[date] to $dateE<br/>";
$sqlx="update tab_xxx set date='$dateE' where date='$row[date]'";
$tablex=mysql_query($sqlx,$Conn) or die ("ไม่สามารถเชื่อมต่อฐานข้อมูลได้");

ประมาณนี้แหละมั้ง
และควรแก้ Type เป็น timestamp ด้วยนะครับ
ปล.ยังไม่เทสนะครับ อาจจะรูปแบบคำสั่งไม่สวยงาม เพราะยังไม่เก่งนะครับ เอิ๊กๆ
« แก้ไขครั้งสุดท้าย: 24 กันยายน 2011, 10:41:41 โดย redmaster » บันทึกการเข้า
หน้า: [1]   ขึ้นบน
พิมพ์