PDA

View Full Version : รบกวนถามเรื่องวิธีเปลี่ยนวันที่และเวลาไปเป็นตัวเลขทีค่าทำในexcleได้แต่ในaccessไม่ได้อ่าค่ามีตัวอย่างข้างในค่า



choco2006
17-08-2007, 10:46 PM
อย่างถ้าเรามีข้อมูลใน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

hina_lovex
23-08-2007, 08:35 AM
[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 ครับผม

choco2006
23-08-2007, 03:58 PM
ขอบคุณมากค่า