ขอถามคำสั่ง update ของ SQL ครับ
กระทู้เก่าบอร์ด อ.Yeadram

 2,222   4
URL.หัวข้อ / URL
ขอถามคำสั่ง update ของ SQL ครับ

ขอรบกวนหน่อยครับผม
ผมมีโปรแกรม Withdrawal ใช้เบิกของออกจากสโตร์ แต่เผลิญมาวันหนึ่ง
ผมเผลอไปกำหนด รูปแบบวันเดือนปี เป็น พ.ศ. ซึ่งของเดิมเขาเป็น ค.ศ.
ทำให้เวลาดึง Report แล้วไม่มีข้อมูล

ผมต้องการเปลี่ยนข้อมูลใน Data Base ซึ่งเป็น MS SQL จาก พ.ศ. เป็น ค.ศ.
ข้อมูล '25580511' เป็น '20150511' โดยใช้คำสั่ง Update ซึ่งข้อมูลมี
ประมาณ 1600 กว่าแถว

ตารางข้อมูลชื่อ 'XSACT' และ ฟิวล์ที่ต้องการเปลี่ยน ชื่อ 'INPUTDATE'
ผมต้องเขียนคำสั่งอย่างไรครับ

UPDATE XSACT
     SET INPUTDATE ..
     WHERE INPUTDATE...?

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

4 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R20740
ก่อนทำให้สำรองข้อมูลเอาไว้ก่อนนะครับ เพราะไม่แน่ใจว่าฟิลด์วันที่ของคุณมี data type เก็บเป็น Text หรือเป็น Date/Time เผื่อมีอะไรผิดพลาด จะได้เอาข้อมูลเดิมที่สำรองเอาไว้กลับมาใช้งานได้   คำสั่งที่ให้นี่ไปรันบน Access นะครับ โดยลิงค์เทเบิลมาไว้ใน Acccess   ถ้าเป็นคำสั่งที่รันบน SQL Server โดยตรงเลย ผมไม่ทราบครับ

- กรณีถ้าเป็น Text
UPDATE XSACT
     SET INPUTDATE = '20150511'
     WHERE INPUTDATE = '25580511'

- กรณีถ้าเป็น Date/Time
UPDATE XSACT
     SET INPUTDATE = #11-May-2015#
     WHERE INPUTDATE = #11-May-2558#
2 @R20741
ขอบพระคุณครับ อาจารย์สันติสุข

ขอถามเพิ่มเติมอีกครับอาจารย์
ถ้าใน row อื่นๆ ที่เดือน และ วันที่ ไม่เหมือนกันก็ไม่มีผลอะไรใช่ไหมครับ
เช่น .'25580512'
'25580513'
'25580514'
'25580515'
'25580601'
'25580601'
'25580605'

มันจะเปลี่ยนให้เราเฉพาะ 4ตัวหน้า (ค.ศ. 'YYYY') ใช่ไหมครับ
3 @R20742
สำรองข้อมูลก่อนทดสอบนะครับ พลาดแล้ว undo ข้อมูลไม่ได้นะครับ
ถ้าต้องการให้เปลี่ยนเฉพาะ 4 ตัวหน้า
ถ้าเป็น Data type: Text
UPDATE XSACT SET INPUTDATE = '2015' & Mid([INPUTDATE],5)
WHERE Left([INPUTDATE],4))='2558'

Data type: DateTime
UPDATE XSACT SET INPUTDATE = DateAdd("yyyy",-543,[INPUTDATE])
WHERE Year([INPUTDATE]='2558'

Data type: Number
UPDATE XSACT SET INPUTDATE = [INPUTDATE]-5430000
WHERE Left([INPUTDATE],4) = '2558'

อะไรประมาณนี้อะครับ ปรับใช้ดูครับ
4 @R20746
UPDATE statement ที่ให้ไป เจาะจงเฉพาะวันที่ครับ วันอื่นๆไม่เกี่ยวครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.4055s