กระทู้เก่าบอร์ด อ.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...?
ขอขอบพระคุุณล่วงหน้าครับผม
ผมมีโปรแกรม 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
2 @R20741
ขอบพระคุณครับ อาจารย์สันติสุข
ขอถามเพิ่มเติมอีกครับอาจารย์
ถ้าใน row อื่นๆ ที่เดือน และ วันที่ ไม่เหมือนกันก็ไม่มีผลอะไรใช่ไหมครับ
เช่น .'25580512'
'25580513'
'25580514'
'25580515'
'25580601'
'25580601'
'25580605'
มันจะเปลี่ยนให้เราเฉพาะ 4ตัวหน้า (ค.ศ. 'YYYY') ใช่ไหมครับ
ขอถามเพิ่มเติมอีกครับอาจารย์
ถ้าใน 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 ตัวหน้า
ถ้าเป็น 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 ที่ให้ไป เจาะจงเฉพาะวันที่ครับ วันอื่นๆไม่เกี่ยวครับ
Time: 0.4055s
- กรณีถ้าเป็น Text
UPDATE XSACT
SET INPUTDATE = '20150511'
WHERE INPUTDATE = '25580511'
- กรณีถ้าเป็น Date/Time
UPDATE XSACT
SET INPUTDATE = #11-May-2015#
WHERE INPUTDATE = #11-May-2558#