-
อย่างถ้าเรามีข้อมูลในexcleเป็น
20060413 |0:13:20
เราจะใช้คำสั่ง
VALUE(DATE(MID(A1,1,4),MID(A1,5,2),MID(A1,7,2)))+VALUE(B1)
แปลงค่าได้เป็น 38820.01
ซึ่ง 38820 คือจำนวนวันที่นับตั้งแต่ปี 1999จนถึงวันที่20060413 และ 01 คือการแปลงเวลา 24 ชั่วโมงแปลงเป็น 1 ค่ะ
ทีนี้มาใน accessบ้าง
เรามีtable1 ที่มีข้อมูล 3 fieldคือ
วันที่|เวลา|ชื่อ
20060413|0:13:20|A
20060413|23:13:20|B
20060513|0:14:20|C
20060613|0:15:20|A
ต้องการเปลี่ยนให้ fieldวันที่กะเวลาเป็นformatจำนวนแทนจะทำยังไงได้บ้างคะ
ผลลัพที่ต้องการ
วันที่และเวลา|ชื่อ
38820.01|A
xxxxxx.xx|B
xxxxxx.xx|C
xxxxxx.xx|A
-
[code]ผมใช้วิธีนี้ครับ สร้าง Table Test
Table : Test มี 2 Fields คือ Date ที่เก็บทั้ง Date และ Time และ Name ที่เก็บ A,B,C,D
Date Name
13/04/2006 13:20:00 A
13/04/2006 23:13:20 B
13/05/2006 14:20:00 C
13/06/2006 15:20:00 D
สร้าง Query
SELECT TEST.Date, TEST.Name, DateDiff("d","1/1/1999",[Date]) AS DateDiff
FROM TEST;
ได้ผลดังนี้ครับ
Date Name DateDiff
13/04/2006 13:20:00 A 2659
13/04/2006 23:13:20 B 2659
13/05/2006 14:20:00 C 2689
13/06/2006 15:20:00 D 2720
ใน Access มี Function DateDiff ที่ใช้ในการหาว่า วันมันแตกต่างกันกี่วัน หรือ วันแตกต่างกันกี่วินาที ลองศึกษา Function DateDiff ดูนะครับ ดังนั้นวิธีการรวมวันเวลาของ Date เป็นช่องเดียวกัน แล้วใช้ฟังก์ชั่นมันง่ายกว่า และถูกต้องมากกว่า กว่าการที่จะใช้วิธีคูณด้วยค่าของ
จำนวนวันในปี x จำนวนชั่วโมงในวัน x นาที x วินาที เพราะว่า มันไม่ได้คำนวณว่าปีไหนเป็นปี ที่เดือนกุมภาพันธ์มี 28 หรือ 29 จึงถูกต้องน้อยกว่า Function ที่ใช้จาก DateDiff ครับผม
-