ผู้เขียน หัวข้อ: สอบถามการเขียนคำสั่งแปลงรูปแบบครับ  (อ่าน 6957 ครั้ง)

0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

ออฟไลน์ Bond_007

  • Hero Member
  • *****
  • กระทู้: 1,533
  • เมื่อก่อนเคยรักมากเท่าไหร่มันยังคงรักมากเท่านั้น
  • Respect: +2
    • ดูรายละเอียด
สอบถามการเขียนคำสั่งแปลงรูปแบบครับ
« เมื่อ: สิงหาคม 27, 2012, 20:57:28 PM »
0
ในตาราง patient ข้อมูลตาราง birthdate มีรูปแบบเป็น 19/02/2554 ถ้าผมอยากให้มันแสดงเป็นรูปแบบ 25540201 แบบนี้ต้องเขียนอย่างไรครับ
โรงพยาบาลศิริเวชลำพูน
Hosxp version 3.53.7.16
ขอขบคุณ อาจารย์ชัยพร,อ.อ็อด,อ.เกื้อ,พี่เอก,พี่กิติศักดิ์,พี่เข้ม,พี่ไสว,พี่ terminator 2010,พี่pikepid,พี่udomchock ,พี่ขวด,พี่เจมส์,ป๋าJdadmin,พี่กานดา admin ทุกๆท่าน และนางฟ้า BMS

ทำเพื่อใครสักคนฉันได้ทำเพื่อความรัก
ร้องให้สักคนฉันก็ร้องจากหัวใจ
รักที่มันต้องจบมันก็ยังงดงาม ฉันยังจำไว้

Nologo How to be hosxp star

ออฟไลน์ surachat1234

  • Newbie
  • *
  • กระทู้: 28
  • Respect: 0
    • ดูรายละเอียด
Re: สอบถามการเขียนคำสั่งแปลงรูปแบบครับ
« ตอบกลับ #1 เมื่อ: สิงหาคม 27, 2012, 21:23:21 PM »
0
DATE_FORMAT(birthdate,"%Y%m%d")
โรงพยาบาลส่งเสริมสุขภาพตำบลหนองกรด ตำบลสระแก้ว จังหวัดกำแพงเพชร
web : http://nongkrod.thaiddns.com
Server : IBM X3100 Intel Xeon Quad-Core  2.66GHz/1333MHz  10Gb. Centos 5.7 64 bit, Percona-Server-server-51-5.1.56 
ขึ้นระบบเมื่อ 1 ธ.ค. 2553 โดยทีมงานไอทีจังหวัดกำแพงเพชรและโรงพยาบาลกำแพงเพชร

ออฟไลน์ Bond_007

  • Hero Member
  • *****
  • กระทู้: 1,533
  • เมื่อก่อนเคยรักมากเท่าไหร่มันยังคงรักมากเท่านั้น
  • Respect: +2
    • ดูรายละเอียด
Re: สอบถามการเขียนคำสั่งแปลงรูปแบบครับ
« ตอบกลับ #2 เมื่อ: สิงหาคม 28, 2012, 08:24:08 AM »
0
ต้องเขียนแบบไหนครับ ผมเขียนไม่ออก  ;D
select concat(fname," ",lname) as fullname,DATE_FORMAT(birthdate(),"%Y%m%d") from patient  limit 100
DATE_FORMAT(birthdate,"%Y%m%d")
โรงพยาบาลศิริเวชลำพูน
Hosxp version 3.53.7.16
ขอขบคุณ อาจารย์ชัยพร,อ.อ็อด,อ.เกื้อ,พี่เอก,พี่กิติศักดิ์,พี่เข้ม,พี่ไสว,พี่ terminator 2010,พี่pikepid,พี่udomchock ,พี่ขวด,พี่เจมส์,ป๋าJdadmin,พี่กานดา admin ทุกๆท่าน และนางฟ้า BMS

ทำเพื่อใครสักคนฉันได้ทำเพื่อความรัก
ร้องให้สักคนฉันก็ร้องจากหัวใจ
รักที่มันต้องจบมันก็ยังงดงาม ฉันยังจำไว้

Nologo How to be hosxp star

ออฟไลน์ chitvichai

  • Full Member
  • ***
  • กระทู้: 103
  • Respect: +5
    • ดูรายละเอียด
    • รพ.เมืองปาน
Re: สอบถามการเขียนคำสั่งแปลงรูปแบบครับ
« ตอบกลับ #3 เมื่อ: สิงหาคม 28, 2012, 08:33:39 AM »
0
ต้องเขียนแบบไหนครับ ผมเขียนไม่ออก  ;D
select concat(fname," ",lname) as fullname,DATE_FORMAT(birthdate(),"%Y%m%d") from patient  limit 100
DATE_FORMAT(birthdate,"%Y%m%d")
ลองดูครับ
โค๊ด: [Select]
select concat(fname," ",lname) as fullname,
replace(birthday,"-","") as addate,/*ค.ศ.*/
concat(replace(birthday,"-","")  +5430000) as bddate /*พ.ศ.*/
from patient
limit 100
« แก้ไขครั้งสุดท้าย: สิงหาคม 28, 2012, 08:43:53 AM โดย chitvichai »
โรงพยาบาลเมืองปาน (ขนาด 30 เตียง) จังหวัดลำปาง โทร 054-276345-6
Master Server : HP Proliant DL360G7 Ram DDR3 1333 ECC 2x2 GB  HDD 2x146 GB  CentOS 6.2 Linux MySQL 5.5.11
Slave Server I : Acer Altos G540 Ram DDR2 667 ECC 2x1 GB HDD 2x146 GB Redhat Ent 5.2 Linux Mysql 5.1.29
Slave Server II : คอมประกอบ Ram DDR2 667  2x2 GB HDD SATA 160 GB Endian Firewall Community release 2.4.1 Mysql 5.5.24
Client : Windows XP Sp2
ขึ้นระบบ 1 มิ.ย.50

ออฟไลน์ udomchok

  • Hero Member
  • *****
  • กระทู้: 8,357
  • Respect: +589
    • ดูรายละเอียด
    • ร.พ.สมเด็จพระสังฆราช องค์ที่ 17
Re: สอบถามการเขียนคำสั่งแปลงรูปแบบครับ
« ตอบกลับ #4 เมื่อ: สิงหาคม 28, 2012, 09:48:08 AM »
0
ต้องเขียนแบบไหนครับ ผมเขียนไม่ออก  ;D
select concat(fname," ",lname) as fullname,DATE_FORMAT(birthdate(),"%Y%m%d") from patient  limit 100

ที่ผิดพลาดคือ
1. birthdate() มิใช่ function ไม่ต้องมีวงเล็บต่อท้าย
2. field birthdate ไม่มีในตาราง patient มีแต่ birthday ส่วน birthdate นั้นอยู่ในตาราง person
ต้องแก้ไขเป็น
select concat(fname," ",lname) as fullname,DATE_FORMAT(birthday,"%Y%m%d") from patient  limit 100
ได้เป็น คศ. นะ เช่น 19691022
ทำด้วยหัวใจร.พ.สมเด็จพระสังฆราช องค์ที่ 17 อ.สองพี่น้อง จ.สุพรรณบุรี
อบรมโดย BMS Team เมื่อ พ.ย. 49 ขึ้นระบบห้องบัตรเมื่อ X'Mas 2007
2008 : X-Ray กายภาพบำบัด แพทย์แผนไทย กิจกรรมบำบัด OPD ตา
2009 : ทันตกรรม ห้องตรวจตา OPD (พยาบาลและห้องตรวจแพทย์บางห้อง)

ออฟไลน์ Bond_007

  • Hero Member
  • *****
  • กระทู้: 1,533
  • เมื่อก่อนเคยรักมากเท่าไหร่มันยังคงรักมากเท่านั้น
  • Respect: +2
    • ดูรายละเอียด
Re: สอบถามการเขียนคำสั่งแปลงรูปแบบครับ
« ตอบกลับ #5 เมื่อ: สิงหาคม 28, 2012, 09:53:40 AM »
0
อาจารย์ครับถ้าต้องการให้เป็นปี พศ เช่น 25541022 ต้องทำยังไงต่อครับตอนนี้รันออกมาเป็น คศ ครับ
ต้องเขียนแบบไหนครับ ผมเขียนไม่ออก  ;D
select concat(fname," ",lname) as fullname,DATE_FORMAT(birthdate(),"%Y%m%d") from patient  limit 100

ที่ผิดพลาดคือ
1. birthdate() มิใช่ function ไม่ต้องมีวงเล็บต่อท้าย
2. field birthdate ไม่มีในตาราง patient มีแต่ birthday ส่วน birthdate นั้นอยู่ในตาราง person
ต้องแก้ไขเป็น
select concat(fname," ",lname) as fullname,DATE_FORMAT(birthday,"%Y%m%d") from patient  limit 100
ได้เป็น คศ. นะ เช่น 19691022
โรงพยาบาลศิริเวชลำพูน
Hosxp version 3.53.7.16
ขอขบคุณ อาจารย์ชัยพร,อ.อ็อด,อ.เกื้อ,พี่เอก,พี่กิติศักดิ์,พี่เข้ม,พี่ไสว,พี่ terminator 2010,พี่pikepid,พี่udomchock ,พี่ขวด,พี่เจมส์,ป๋าJdadmin,พี่กานดา admin ทุกๆท่าน และนางฟ้า BMS

ทำเพื่อใครสักคนฉันได้ทำเพื่อความรัก
ร้องให้สักคนฉันก็ร้องจากหัวใจ
รักที่มันต้องจบมันก็ยังงดงาม ฉันยังจำไว้

Nologo How to be hosxp star

ออฟไลน์ Bond_007

  • Hero Member
  • *****
  • กระทู้: 1,533
  • เมื่อก่อนเคยรักมากเท่าไหร่มันยังคงรักมากเท่านั้น
  • Respect: +2
    • ดูรายละเอียด
Re: สอบถามการเขียนคำสั่งแปลงรูปแบบครับ
« ตอบกลับ #6 เมื่อ: สิงหาคม 28, 2012, 10:01:49 AM »
0
ถ้าทำเป็นปี พ.ศ น่าจะเป็นแบบนี้ใช่ไหมคร้บ  ;D
select date_format(birthday+5430000,'%Y%m%d') as birthday  from patient  limit 100
โรงพยาบาลศิริเวชลำพูน
Hosxp version 3.53.7.16
ขอขบคุณ อาจารย์ชัยพร,อ.อ็อด,อ.เกื้อ,พี่เอก,พี่กิติศักดิ์,พี่เข้ม,พี่ไสว,พี่ terminator 2010,พี่pikepid,พี่udomchock ,พี่ขวด,พี่เจมส์,ป๋าJdadmin,พี่กานดา admin ทุกๆท่าน และนางฟ้า BMS

ทำเพื่อใครสักคนฉันได้ทำเพื่อความรัก
ร้องให้สักคนฉันก็ร้องจากหัวใจ
รักที่มันต้องจบมันก็ยังงดงาม ฉันยังจำไว้

Nologo How to be hosxp star

ออฟไลน์ chitvichai

  • Full Member
  • ***
  • กระทู้: 103
  • Respect: +5
    • ดูรายละเอียด
    • รพ.เมืองปาน
Re: สอบถามการเขียนคำสั่งแปลงรูปแบบครับ
« ตอบกลับ #7 เมื่อ: สิงหาคม 28, 2012, 10:49:12 AM »
0
ถ้าทำเป็นปี พ.ศ น่าจะเป็นแบบนี้ใช่ไหมคร้บ  ;D
select date_format(birthday+5430000,'%Y%m%d') as birthday  from patient  limit 100

1: select concat(date_format(birthday,'%Y%m%d')+5430000) as birthday  from patient  limit 100

or

2: select concat(replace(birthday,'-','')+5430000) as birthday from patient limit 100

1: ใช้ date_format function จะได้แต่ปี ค.ศ. แล้ว +5430000 จะเป็น ตัวแล้ว ต้องใช้ string function ช่วยเปลี่ยนเป็น พ.ศ.

2: ใช้ string function

โรงพยาบาลเมืองปาน (ขนาด 30 เตียง) จังหวัดลำปาง โทร 054-276345-6
Master Server : HP Proliant DL360G7 Ram DDR3 1333 ECC 2x2 GB  HDD 2x146 GB  CentOS 6.2 Linux MySQL 5.5.11
Slave Server I : Acer Altos G540 Ram DDR2 667 ECC 2x1 GB HDD 2x146 GB Redhat Ent 5.2 Linux Mysql 5.1.29
Slave Server II : คอมประกอบ Ram DDR2 667  2x2 GB HDD SATA 160 GB Endian Firewall Community release 2.4.1 Mysql 5.5.24
Client : Windows XP Sp2
ขึ้นระบบ 1 มิ.ย.50

ออฟไลน์ udomchok

  • Hero Member
  • *****
  • กระทู้: 8,357
  • Respect: +589
    • ดูรายละเอียด
    • ร.พ.สมเด็จพระสังฆราช องค์ที่ 17
Re: สอบถามการเขียนคำสั่งแปลงรูปแบบครับ
« ตอบกลับ #8 เมื่อ: สิงหาคม 28, 2012, 13:01:50 PM »
0
ผมลองแบบนี้ก็ได้ออกมาครับ
select concat(fname," ",lname) as fullname,concat(DATE_FORMAT(birthday,"%Y")+543,DATE_FORMAT(birthday,"%m%d")) as cc from patient  limit 100

หรือตามนี้ก็ได้ครับ
1: select concat(date_format(birthday,'%Y%m%d')+5430000) as birthday  from patient  limit 100

or

2: select concat(replace(birthday,'-','')+5430000) as birthday from patient limit 100
ทำด้วยหัวใจร.พ.สมเด็จพระสังฆราช องค์ที่ 17 อ.สองพี่น้อง จ.สุพรรณบุรี
อบรมโดย BMS Team เมื่อ พ.ย. 49 ขึ้นระบบห้องบัตรเมื่อ X'Mas 2007
2008 : X-Ray กายภาพบำบัด แพทย์แผนไทย กิจกรรมบำบัด OPD ตา
2009 : ทันตกรรม ห้องตรวจตา OPD (พยาบาลและห้องตรวจแพทย์บางห้อง)