ชนิดข้อมูล
หมายเหตุ
Microsoft Power Fx เป็นชื่อใหม่สำหรับภาษาสูตรของแอปพื้นที่ทำงาน บทความเหล่านี้คืองานที่อยู่ระหว่างดำเนินการ ในขณะที่เราแยกภาษาจากแอปพื้นที่ทำงาน รวมเข้ากับผลิตภัณฑ์ Microsoft Power Platform อื่นๆ และทำให้พร้อมใช้งานในรูปแบบโอเพนซอร์ส เริ่มต้นด้วย ภาพรวมของ Microsoft Power Fx สำหรับการแนะนำภาษา
ข้อมูลไหลผ่าน Microsoft Power Fx ในค่าเล็กๆ ที่ไม่ต่อเนื่องเหมือนกับเซลล์ของสเปรดชีต ตัวอย่างเช่น ข้อมูลในฟิลด์ วันเกิด และฟิลด์ วันครบรอบ ทั้งงสองจะไหลผ่านเป็นค่า วันที่ ที่มีปี เดือน และวัน แอปรู้วิธีจัดรูปแบบค่าเหล่านี้ จำกัดข้อมูลป้อนเข้าให้เหมาะสมกับแต่ละค่าและแชร์ค่ากับฐานข้อมูล วันเกิดแตกต่างจากวันครบรอบ แต่ระบบจัดการพวกเขาในลักษณะเดียวกัน ในกรณีนี้ วันที่ เป็นตัวอย่างของ ชนิดข้อมูล
บทความนี้ให้รายละเอียดสำหรับชนิดข้อมูลที่ Power Fx รองรับ เมื่อนำข้อมูลภายนอกเข้ามาในภาษา ข้อมูลแต่ละชนิดในแหล่งข้อมูลนั้นจะถูกแม็ปกับชนิดข้อมูลสำหรับ Power Fx
| ชนิดข้อมูล | รายละเอียด | ตัวอย่าง |
|---|---|---|
| แบบบูลีน | ค่า จริง หรือ เท็จ สามารถใช้โดยตรงใน ถ้า กรอง และฟังก์ชั่นอื่นๆ โดยไม่มีการเปรียบเทียบ | true |
| สี | ข้อกำหนดสี รวมถึงช่องทางอัลฟา | Color.Red ColorValue( "#102030" ) RGBA( 255, 128, 0, 0.5 ) |
| สกุลเงิน | ค่าสกุลเงินที่จัดเก็บในหมายเลขทศนิยม ค่าสกุลเงินเหมือนกับค่าตัวเลขพร้อมตัวเลือกการจัดรูปแบบสกุลเงิน | 123 4.56 |
| วันที่ | วันที่ที่ไม่มีเวลา ในเขตเวลาของผู้ใช้แอป | Date( 2019, 5, 16 ) |
| วันที่เวลา | วันที่ที่มีเวลา ในเขตเวลาของผู้ใช้แอป | DateTimeValue( "May 16, 2019 1:23:09 PM" ) |
| GUID | รหัสตัวระบุที่ไม่ซ้ำแบบส่วนกลาง | GUID() GUID( "123e4567-e89b-12d3-a456-426655440000" ) |
| ไฮเปอร์ลิงก์ | สตริงข้อความที่มีไฮเปอร์ลิงก์ | https://powerapps.microsoft.com |
| รูปภาพ | สตริงข้อความ รหัสเฉพาะของทรัพยากรแบบสากล (URI) ไปยังรูปภาพในรูปแบบ .jpeg, .png, .svg, .gif หรือรูปแบบทั่วไปอื่นๆ ของเว็บ | MyImage เพิ่มเป็นทรัพยากรแอป "https://northwindtraders.com/logo.jpg" "appres://blobmanager/7b12ffa2..." |
| สื่อ | สตริงข้อความ URI สำหรับการบันทึกวิดีโอหรือเสียง | MyVideo เพิ่มเป็นทรัพยากรแอป "https://northwindtraders.com/intro.mp4" "appres://blobmanager/3ba411c..." |
| ตัวเลข | เลขทศนิยมลอยตัว | 123 -4.567 8.903e121 |
| ชุดตัวเลือก | ตัวเลือกจากชุดของตัวเลือกที่สำรองไว้โดยตัวเลข ชนิดข้อมูลนี้รวมป้ายกำกับข้อความที่แปลได้แบบท้องถิ่นพร้อมค่าตัวเลข ป้ายกำกับจะปรากฏในแอป และค่าตัวเลขจะถูกจัดเก็บและใช้สำหรับการเปรียบเทียบ | ThisItem.OrderStatus |
| เรกคอร์ด | เรกคอร์ดของค่าข้อมูล ชนิดข้อมูลผสมนี้มีอินสแตนซ์ของชนิดข้อมูลอื่นๆ ที่ระบุไว้ในหัวข้อนี้ ข้อมูลเพิ่มเติม: การทำงานกับตาราง | { บริษัท: "Northwind Traders", พนักงาน: 35, NonProfit: false } |
| บันทึกการอ้างอิง | การอ้างอิงไปยังเรกคอร์ดในเอนทิตี การอ้างอิงดังกล่าวมักใช้กับการค้นหาโพลีมอร์ฟิค ข้อมูลเพิ่มเติม: การทำงานกับการอ้างอิง | First(Accounts).Owner |
| Table | ตารางของเรกคอร์ด เรกคอร์ดทั้งหมดจะต้องมีชื่อเดียวกันสำหรับฟิลด์ที่มีชนิดข้อมูลเดียวกัน และฟิลด์ที่ละเว้นจะถือเป็น ว่างเปล่า ชนิดข้อมูลผสมนี้มีอินสแตนซ์ของชนิดข้อมูลอื่นๆ ที่ระบุไว้ในหัวข้อนี้ ข้อมูลเพิ่มเติม: การทำงานกับตาราง | ตาราง( { ชื่อ: "Sidney", นามสกุล: "Higa" }, { ชื่อ: "Nancy", นามสกุล: "Anderson" } ) |
| ข้อความ | สตริงของข้อความ Unicode | "Hello, World" |
| เวลา | เวลาที่ไม่มีวันที่ ในเขตเวลาของผู้ใช้แอป | เวลา( 11, 23, 45 ) |
| สองตัวเลือก | ตัวเลือกจากชุดของสองตัวเลือก ที่สำรองไว้โดยค่าบูลีน ชนิดข้อมูลนี้รวมป้ายกำกับข้อความที่แปลได้แบบท้องถิ่นพร้อมค่าบูลีน ป้ายกำกับจะปรากฏในแอป และค่าบูลีนจะถูกจัดเก็บและใช้สำหรับการเปรียบเทียบ | ThisItem.Taxable |
ชนิดข้อมูลเหล่านี้จำนวนมากมีความคล้ายคลึงกันและมีการแสดงที่เหมือนกัน เช่น ฟิลด์ ไฮเปอร์ลิงก์ ที่ถูกถือว่าเป็น ข้อความ ชนิดข้อมูลเพิ่มเติมให้ประสบการณ์เริ่มต้นที่ดีขึ้นในฟอร์มและการควบคุมอื่นๆ
Blank
ชนิดข้อมูลทั้งหมดสามารถมีค่าเป็น ว่างเปล่า (ในคำอื่นๆ ไม่มีค่า) คำว่า "null" มักใช้ในฐานข้อมูลสำหรับแนวคิดนี้
ใช้ฟังก์ชั่น ว่างเปล่า ด้วย ชุด หรือฟังก์ชั่น โปรแกรมแก้ไข เพื่อตั้งค่าตัวแปรหรือฟิลด์เป็น ว่างเปล่า ตัวอย่างเช่น, ตั้งค่า( x, ว่างเปล่า() ) ลบค่าใดๆ ในตัวแปรแบบส่วนกลาง x
ทดสอบหาค่า ว่าง โดยใช้ฟังก์ชัน IsBlank แทนค่า ว่างเปล่า ที่เป็นไปได้ ด้วยค่า ไม่-ว่างเปล่า โดยใช้ฟังก์ชัน Coalesce
เพราะข้อมูลทุกประเภทรองรับชนิดข้อมูล ว่างเปล่า บูลีน และ สองตัวเลือก อย่างมีประสิทธิภาพมีสามค่าที่เป็นไปได้
ข้อความ ไฮเปอร์ลิงก์ รูปภาพ และสื่อ
ทั้งสี่ประเภทข้อมูลเหล่านี้จะขึ้นอยู่กับสตริงข้อความ Unicode
ข้อความฝังตัว
สตริงข้อความแบบฝังในสูตรถูกล้อมรอบด้วยเครื่องหมายอัญประกาศคู่ ใช้เครื่องหมายอัญประกาศคู่สองตัวพร้อมกัน เพื่อเป็นตัวแทนของเครื่องหมายอัญประกาศคู่เดียวในสตริงข้อความ ตัวอย่างเช่น ใช้สูตรต่อไปนี้ในคุณสมบัติ OnSelect ของกาีรควบคุม ปุ่ม:
Notify( "Jane said ""Hello, World!""" )
ให้ผลลัพธ์ในแบนเนอร์เมื่อกดปุ่ม โดยไม่ใส่เครื่องหมายอัญประกาศคู่แรกและสุดท้าย (ขณะที่คั่นสตริงข้อความ) และเครื่องหมายอัญประกาศคู่ซ้ำรอบๆ Hello, World! จะถูกแทนที่ด้วยเครื่องหมายอัญประกาศคู่เดียว:

ไม่ใช้เครื่องหมายอัญประกาศเดี่ยวสำหรับ ชื่อตัวระบุ ที่มีอักขระพิเศษและไม่มีนัยสำคัญภายในสตริงข้อความ
ทรัพยากรรูปภาพและสื่อ
ผ่านเมนู ไฟล์ คุณสามารถเพิ่มไฟล์รูปภาพ วิดีโอ และเสียง เป็นทรัพยากรแอป ชื่อของไฟล์ที่นำเข้าจะกลายเป็นชื่อทรัพยากรในแอป ในกราฟิกนี้ โลโก้ Northwind Traders ซึ่งมีชื่อว่า nwindlogo ถูกเพิ่มลงในแอปแล้ว:

หากต้องการใช้ทรัพยากรนี้ในแอป ให้ระบุในคุณสมบัติ รูปภาพ ของการควบคุม รูปภาพ:

URIs สำหรับรูปภาพและสื่ออื่นๆ
คุณสามารถขุดลึกลงไปในตัวอย่างที่ผ่านมา โดยตั้งค่าคุณสมบัติ ข้อความ ของการควบคุม ป้ายกำกับ เป็น nwindlogo ป้ายกำกับแสดงสตริงข้อความ:

Power Fx อ้างอิงแต่ละรูปภาพหรือไฟล์สื่ออื่นๆ ไม่ว่าจะอยู่ในระบบคลาวด์ หรือถูกเพิ่มเป็นทรัพยากรของแอป โดยสตริงข้อความ URI
ตัวอย่างเช่น คุณสมบัติ ภาพ ของตัวควบคุมรูปภาพยอมรับ ไม่เพียงแต่ทรัพยากรแอปเท่านั้น แต่ยังลิงก์ไปยังรูปภาพบนเว็บ เช่น "https://northwindtraders.com/logo.jpg" คุณสมบัตินี้ยังยอมรับรูปภาพแบบอินไลน์ที่ใช้ data URI scheme เช่นในตัวอย่างนี้:
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAFAQMAAACtnVQoAAAABlBMVEUAAAB0J3UMNU6VAAAAAXRSTlMAQObYZgAAABRJREFUCNdjUGJgCGVg6GgAkkA2AA8/AffqCEBsAAAAAElFTkSuQmCC"
URI นั้นแสดงเพชรสีม่วงสองก้อนขนาดใหญ่ขึ้น:

คุณสามารถแสดงภาพล่าสุดที่ถ่ายไว้ใน การควบคุม กล้อง ถ้าคุณตั้งค่าคุณสมบัติ ภาพ ของตัวควบคุมรูปภาพ เป็นคุณสมบัติ ภาพถ่าย ของการควบคุมกล้อง แอปถือภาพในหน่วยความจำและคุณสมบัติ ภาพถ่าย ของการควบคุมกล้อง ส่งกลับการอ้างอิง URI ไปยังภาพ ตัวอย่างเช่น คุณอาจถ่ายภาพ และคุณสมบัติของกล้อง ภาพถ่าย สามารถส่งคืนได้ "appres://blobmanager/7b12ffa2ea4547e5b3812cb1c7b0a2a0/1"
คุณใช้ URI เพื่ออ้างอิงรูปภาพหรือไฟล์สื่ออื่นที่เก็บไว้ในฐานข้อมูล ด้วยวิธีนี้ แอปจะไม่ดึงข้อมูลจริงจนกว่าจะจำเป็น ตัวอย่างเช่น สิ่งที่แนบมาในเอนทิตี Microsoft Dataverse อาจส่งคืน "appres://datasources/Contacts/table/..." เช่นในตัวอย่างของกล้อง คุณสามารถแสดงภาพนี้โดยการตั้งค่าคุณสมบัติ ภาพ ของการควบคุมภาพเพื่อการอ้างอิงนี้ ซึ่งดึงข้อมูลไบนารี
เมื่อคุณบันทึกประเภทข้อมูลสื่อ เช่น รูปภาพ ไปยังฐานข้อมูล แอปจะส่งภาพหรือข้อมูลสื่อจริง ไม่ใช่การอ้างอิง URI
ขีดจำกัดของขนาด
ในฐานะที่เป็นสตริงข้อความและ URIs ชนิดข้อมูลเหล่านี้ไม่มีการจำกัดความยาวไว้ล่วงหน้า
ข้อมูลไบนารีที่อ้างอิงชนิดข้อมูลเหล่านี้ ยังไม่มีการจำกัดขนาดไว้ล่วงหน้า ตัวอย่างเช่น ภาพที่ถ่ายผ่านส่วนควบคุมกล้องที่อ้างอิงในขณะนี้ "appres://..." สามารถมีขนาดใหญ่และความละเอียดสูงเท่าที่กล้องของอุปกรณ์สามารถรวบรวม ความละเอียด อัตราเฟรม และคุณสมบัติอื่นๆ ของไฟล์สื่อไม่ได้ถูกจำกัดโดยชนิดข้อมูล แต่การควบคุมเฉพาะสำหรับการเล่นและการจับภาพสื่ออาจมีข้อจำกัดของตัวเอง
อย่างไรก็ตาม ขนาดข้อมูลทั้งหมดขึ้นอยู่กับจำนวนหน่วยความจำที่มีอยู่ในแอป เบราว์เซอร์ที่ทำงานบนคอมพิวเตอร์เดสก์ท็อปมักรองรับข้อมูลมากกว่า 100 เมกะไบต์ อย่างไรก็ตาม จำนวนหน่วยความจำที่มีอยู่ในอุปกรณ์ เช่น โทรศัพท์ อาจต่ำกว่าปกติ โดยทั่วไปอยู่ในช่วง 30-70 เมกะไบต์ ในการตรวจสอบว่าแอปของคุณจะทำงานภายในขีดจำกัดเหล่านี้หรือไม่ ให้ทดสอบสถานการณ์ทั่วไปในอุปกรณ์ทั้งหมดที่ควรใช้
วิธีปฏิบัติที่ดีที่สุด ให้เก็บข้อมูลไว้ในหน่วยความจำตราบเท่าที่จำเป็น อัปโหลดภาพไปยังฐานข้อมูลทันทีที่คุณทำได้; ดาวน์โหลดรูปภาพเฉพาะเมื่อผู้ใช้แอปร้องขอเท่านั้น
จำนวนและสกุลเงิน
ชนิดข้อมูล จำนวน และ สกุลเงิน ใช้ มาตรฐานจุดทศนิยมลอยตัวที่เที่ยงตรงแม่นยำสองเท่าของ IEEE 754 มาตรฐานนี้ระบุช่วงขนาดใหญ่ของตัวเลขในการใช้งานตั้งแต่ –1.79769 x 10308 ถึง 1.79769 x 10308 ค่าที่น้อยที่สุดที่สามารถแทนได้คือ 5 x 10-324
Power Fx สามารถแทนจำนวนทั้งหมด (หรือจำนวนเต็ม) ระหว่าง –9,007,199,254,740,991 (–(253 – 1)) และ 9,007,199,254,740,991 (253 – 1) แบบรวม ช่วงนี้มีขนาดใหญ่กว่าชนิดข้อมูลจำนวนเต็มแบบ 32 บิต (หรือ 4 ไบต์) ที่ฐานข้อมูลใช้โดยทั่วไป อย่างไรก็ตาม Power Fx ไม่สามารถแสดงชนิดข้อมูลจำนวนเต็ม 64 บิต (หรือ 8 ไบต์) ได้ คุณอาจต้องการจัดเก็บตัวเลขในฟิลด์ข้อความ หรือใช้คอลัมน์ที่มีการคำนวณ เพื่อสร้างสำเนาของตัวเลขในฟิลด์ข้อความ เพื่อให้มีการแม็ปกับชนิดข้อมูล ข้อความ ใน Power Fx ด้วยวิธีนี้ คุณสามารถเก็บ แสดง และป้อนค่าเหล่านี้ และเปรียบเทียบค่าเหล่านี้เพื่อพิจารณาว่าเท่ากันหรือไม่ อย่างไรก็ตาม คุณไม่สามารถทำการคำนวณตัวเลขในฟอร์มนี้ได้
เลขทศนิยมเป็นค่าประมาณ ดังนั้นบางครั้งก็สามารถให้ผลลัพธ์ที่ไม่คาดคิดกับตัวอย่างเอกสารมากมาย คุณอาจคาดหวังสูตร 55 / 100 * 100 เพื่อส่งคืน 55 และ (55 / 100 * 100) - 55 เพื่อกลับเป็นศูนย์อย่างแน่นอน อย่างไรก็ตาม สูตรหลังจะคืนค่า 7.1054 x 10–15 ซึ่งมีขนาดเล็ก แต่ไม่เป็นศูนย์ ความแตกต่างเล็กๆ น้อยๆ นั้นไม่ได้ทำให้เกิดปัญหาแต่อย่างใด และแอปจะปัดเศษออกเมื่อแสดงผลลัพธ์ อย่างไรก็ตาม ความแตกต่างเล็กน้อยสามารถรวมกันในการคำนวณครั้งต่อไปและดูเหมือนจะให้คำตอบที่ผิด
ระบบฐานข้อมูลมักจะเก็บสกุลเงินและทำการคำนวณโดยใช้คณิตศาสตร์ทศนิยม ซึ่งมีช่วงที่เล็กลง แต่ควบคุมความแม่นยำได้มากขึ้น ตามค่าเริ่มต้น แอป Power Fx จะแม็ปสกุลเงินเข้าและออกจากค่าทศนิยมลอยตัว ดังนั้น ผลลัพธ์อาจแตกต่างจากการคำนวณที่ทำในชนิดข้อมูลทศนิยมดั้งเดิม หากความแตกต่างประเภทนี้จะทำให้เกิดปัญหา คุณอาจต้องการทำงานกับค่าเหล่านี้เป็น ข้อความ เช่นเดียวกับที่คุณอาจต้องการด้วยจำนวนเต็มขนาดใหญ่ที่อธิบายไว้ก่อนหน้าในส่วนนี้
วันที่ เวลา และ วันที่เวลา
โซนเวลา
ค่าวันที่/เวลา อยู่ในหมวดหมู่เหล่านี้:
- เวลาท้องถิ่นของผู้ใช้: ค่าเหล่านี้จะถูกเก็บไว้ใน UTC (เวลาสากลเชิงพิกัด) แต่เขตเวลาของผู้ใช้แอปมีผลต่อวิธีที่แอปแสดงค่าเหล่านี้ และวิธีที่ผู้ใช้แอประบุ ตัวอย่างเช่ นช่วงเวลาเดียวกันนั้นปรากฏให้ผู้ใช้ในแคนาดาแตกต่างจากผู้ใช้ในญี่ปุ่น
- ไม่ผูกกับเขตเวลา: แอปแสดงค่าเหล่านี้ในลักษณะเดียวกัน และผู้ใช้แอประบุด้วยวิธีเดียวกัน โดยไม่คำนึงถึงเขตเวลา ช่วงเวลาเดียวกันปรากฏในรูปแบบเดียวกันกับผู้ใช้ในแคนาดาเหมือนกับผู้ใช้ในญี่ปุ่น ผู้เขียนแอปที่ไม่คาดว่าแอปจะทำงานในเขตเวลาที่ต่างกันให้ใช้ค่าเหล่านี้
ตารางนี้แสดงตัวอย่าง:
| ชนิดวันที่/เวลา | ค่าที่เก็บไว้ในฐานข้อมูล | ค่าที่แสดงและป้อน 7 ชั่วโมงทางตะวันตกของ UTC | ค่าที่แสดงและป้อน 4 ชั่วโมงทางตะวันออกของ UTC |
|---|---|---|---|
| เวลาท้องถิ่นของผู้ใช้ | วันอาทิตย์ พฤษภาคม 19 2019 4:00 AM |
วันเสาร์ พฤษภาคม 18 2019 9:00 PM |
วันอาทิตย์ พฤษภาคม 19 2019 8:00 AM |
| เขตเวลาอิสระ | วันอาทิตย์ พฤษภาคม 19 2019 4:00 AM |
วันอาทิตย์ พฤษภาคม 19 2019 4:00 AM |
วันอาทิตย์ พฤษภาคม 19 2019 4:00 AM |
เมื่อมีการใช้ใน Power Apps สำหรับวันที่/เวลาแบบ เวลาท้องถิ่นของผู้ใช้ Power Fx จะใช้เขตเวลาของเบราว์เซอร์หรืออุปกรณ์ แต่แอปแบบจำลองจะใช้การตั้งค่าของผู้ใช้ใน Dataverse โดยทั่วไปการตั้งค่าเหล่านี้จะตรงกัน แต่ผลลัพธ์จะแตกต่างกันหากการตั้งค่าเหล่านี้แตกต่างกัน
ใช้ฟังก์ชั่น DateAdd และ TimeZoneInformation ในการแปลงเวลาท้องถิ่นเป็น UTC และกลับมาอีกครั้ง ดูตัวอย่างในตอนท้ายของเอกสารประกอบสำหรับฟังก์ชั่นเหล่านี้
ตัวเลขเทียบเท่า
Power Fx เก็บและคำนวณค่าวันที่/เวลาทั้งหมด ไม่ว่าจะเป็น เวลาท้องถิ่นของผู้ใช้ หรือ ไม่ผูกกับเขตเวลา ใน UTC แอปแปลค่าตามเขตเวลาของผู้ใช้แอป เมื่อแสดงและเมื่อผู้ใช้แอประบุ
เมื่อ Power Fx อ่านค่า ไม่ผูกกับเขตเวลา จากแหล่งข้อมูล หรือเขียนค่าดังกล่าวไปยังแหล่งข้อมูล แอปจะปรับค่าโดยอัตโนมัติเพื่อชดเชยเขตเวลาของผู้ใช้แอป แอปจะถือว่าค่าเป็นค่า UTC สอดคล้องกับค่าวันที่/เวลาอื่นๆ ทั้งหมดในแอป เนื่องจากการชดเชยนี้ ค่า เขตเวลาอิสระ ต้นฉบับจะปรากฏขึ้นเมื่อแอปปรับค่า UTC สำหรับเขตเวลาของผู้ใช้แอป
คุณสามารถสังเกตพฤติกรรมนี้อย่างใกล้ชิดยิ่งขึ้น โดยใช้ฟังก์ชั่น Value ในการเข้าถึงค่าตัวเลขพื้นฐานสำหรับค่าวันที่/เวลา ฟังก์ชันนี้ส่งคืนค่าวันที่/เวลาเป็นจำนวนมิลลิวินาที นับตั้งแต่วันที่ 1 มกราคม 1970 00:00:00.000 UTC
เนื่องจากทุกค่าวันที่/เวลา ถูกเก็บไว้ใน UTC สูตร ค่า(วันที่(1970, 1, 1) ) จะไม่กลับมาเป็นศูนย์ในส่วนใหญ่ของโลกเพราะฟังก์ชัน วันที่ ส่งคืนวันที่ใน UTC ตัวอย่างเช่น สูตรจะส่งคืน 28,800,000 ในเขตเวลาที่ชดเชยจาก UTC ภายในแปดชั่วโมง ตัวเลขนั้นแสดงถึงจำนวนมิลลิวินาทีในแปดชั่วโมง
กลับไปที่ตัวอย่างของเราจากด้านบน:
| ชนิดวันที่/เวลา | ค่าที่เก็บไว้ในฐานข้อมูล | ค่าที่แสดงและป้อน 7 ชั่วโมงทางตะวันตกของ UTC | ฟังก์ชัน ค่า ส่งคืน |
|---|---|---|---|
| เวลาท้องถิ่นของผู้ใช้ | วันอาทิตย์ พฤษภาคม 19 2019 4:00 AM |
วันเสาร์ พฤษภาคม 18 2019 9:00 PM |
1,558,238,400,000 (วันอาทิตย์ พฤษภาคม 19 2019 4:00 AM UTC) |
| เขตเวลาอิสระ | วันอาทิตย์ พฤษภาคม 19 2019 4:00 AM |
วันอาทิตย์ พฤษภาคม 19 2019 4:00 AM |
1,558,263,600,000 (วันอาทิตย์ พฤษภาคม 19 2019 11:00 AM UTC) |
การแปลงเวลา Unix
เวลา Unix แสดงจำนวนวินาทีตั้งแต่วันที่ 1 มกราคม 1970 00:00:00 UTC เนื่องจาก Power Fx ใช้มิลลิวินาทีแทนวินาที คุณจึงสามารถแปลงระหว่างทั้งสองหน่วยได้โดยการคูณหรือหารด้วย 1,000
ตัวอย่างเช่น เวลา Unix แสดง 9 กันยายน 2001 เวลา 01:46:40 UTC เป็น 1,000,000,000 หากต้องการแสดงค่าวันที่/เวลานั้นเป็นข้อความ ให้คูณตัวเลขนั้นด้วย 1,000 เพื่อแปลงเป็นมิลลิวินาที และจากนั้น ใช้ในฟังก์ชัน ข้อความ สูตร ข้อความ(1000000000 * 1,000, DateTimeFormat.UTC) ส่งคืนสตริง 2001-09-09T01:46:40.000Z
อย่างไรก็ตาม ฟังก์ชันนั้นจะคืนค่า วันเสาร์ที่ 8 กันยายน 2001 18:46:40 ถ้าคุณใช้รูปแบบ DateTimeFormat.LongDateTime24 ในเขตเวลาที่ชดเชยเวลา -7 ชั่วโมงจาก UTC (7 ชั่วโมงทางตะวันตกของ UTC) ผลลัพธ์นี้แสดงให้เห็นว่าค่า วันที่เวลา อย่างถูกต้องขึ้นอยู่กับโซนเวลาท้องถิ่น
หากต้องการแปลงเป็นเวลา Unix ให้หารผลลัพธ์จาก ค่า ด้วย 1,000:
RoundDown( ค่า (UnixTime) / 1000, 0 )
หากคุณต้องการเวลา Unix ในค่า วันที่ สำหรับการคำนวณเพิ่มเติมหรือแสดงผลภายใน Power Apps ใช้สูตรนี้:
DateAdd( Date( 1970,1,1 ), UnixTime, Seconds )
SQL Server
SQL Server มี วันที่เวลา, วันที่เวลา2 และประเภทข้อมูลวันที่/เวลาอื่นๆ ที่ไม่มีเขตเวลาชดเชยและไม่ได้ระบุเขตเวลาที่พวกเขาอยู่ Power Fx จะถือว่าค่าเหล่านี้ถูกเก็บไว้ใน UTC และถือว่าเป็น เวลาท้องถิ่นของผู้ใช้ หากค่านั้นมีความหมายว่าเป็น ไม่ผูกกับเขตเวลา ให้แก้ไขการแปล UTC โดยใช้ฟังก์ชัน TimeZoneOffset
Power Fx ใช้ข้อมูลเขตเวลาที่รวมอยู่ในฟิลด์ Datetimeoffset เมื่อแปลงค่าเป็นการแสดง UTC ภายในของแอป แอปใช้ UTC เป็นเขตเวลาเสมอ (ออฟเซ็ตเขตเวลาเป็นศูนย์) เมื่อเขียนข้อมูล
Power Fx อ่านและเขียนค่าของชนิดข้อมูล เวลา ใน SQL Server เป็นสตริงข้อความใน รูปแบบระยะเวลา ISO 8601. ตัวอย่างเช่น คุณต้องแยกวิเคราะห์รูปแบบสตริงนี้และใช้ฟังก์ชั่น Time ในการแปลงสตริงข้อความ "PT2H1M39S" ไปยังค่า เวลา:
With(
Match( "PT2H1M39S", "PT(?:(?<hours>\d+)H)?(?:(?<minutes>\d+)M)?(?:(?<seconds>\d+)S)?" ),
Time( Value( hours ), Value( minutes ), Value( seconds ) )
)
// Result: 2:01 AM (as shown in a label control, use the Text function to see the seconds)
การผสมข้อมูลวันที่และเวลา
วันที่, เวลา และ วันที่เวลา มีชื่อแตกต่างกัน แต่พวกเขาทั้งหมดมีข้อมูลเดียวกันเกี่ยวกับวันที่และเวลา
ค่า วันที่ สามารถรวมข้อมูลเวลา ซึ่งมักจะเป็นเที่ยงคืน ค่า เวลา สามารถนำข้อมูลวันที่ ซึ่งมักจะเป็น 1 มกราคม 1970 Dataverse เก็บข้อมูลเวลาด้วยฟิลด์ วันที่เท่านั้น แต่จะแสดงเฉพาะข้อมูลวันที่ตามค่าเริ่มต้น ในทำนองเดียวกัน บางครั้ง Power Fx จะแยกความแตกต่างระหว่างชนิดข้อมูลเหล่านี้เพื่อกำหนดฟอร์มและตัวควบคุมเริ่มต้น
ไม่แนะนำให้เพิ่มและลบค่าวันที่และเวลาโดยตรงเนื่องจากเขตเวลาและการแปลงอื่นๆ อาจทำให้เกิดผลลัพธ์ที่สับสน ทั้งใช้ฟังก์ชั่น ค่า ในการแปลงค่าวันที่/เวลาเป็นมิลลิวินาทีก่อน และคำนึงถึงเขตเวลาของผู้ใช้แอป หรือใช้ฟังก์ชั่น DateAdd และ DateDiff เพื่อเพิ่มหรือลบจากหนึ่งในค่าเหล่านี้
ชุดตัวเลือกและสองตัวเลือก
ชุดตัวเลือกและประเภทข้อมูลสองตัวเลือกมีตัวเลือกอย่างน้อยสองตัวเลือกให้ผู้ใช้แอปเลือก ตัวอย่างเช่น ชุดตัวเลือก สถานะการสั่งซื้อ อาจเสนอตัวเลือก ใหม่ การจัดส่ง ใบแจ้งหนี้ และ ปิด ชนิดข้อมูลสองตัวเลือกมีเพียงสองตัวเลือก
ชนิดข้อมูลทั้งสองนี้แสดงป้ายกำกับของพวกเขาในบริบทสตริงข้อความ ตัวอย่างเช่น ตัวควบคุมป้ายกำกับจะแสดงหนึ่งในตัวเลือกสถานะการสั่งซื้อ หากคุณสมบัติตัวควบคุม ข้อความ ถูกตั้งค่าเป็นสูตรที่อ้างอิงว่า ชุดตัวเลือก ป้ายกำกับตัวเลือกอาจมีการแปลสำหรับผู้ใช้แอปในสถานที่ต่างกัน
เมื่อผู้ใช้แอปเลือกตัวเลือกและบันทึกการเปลี่ยนแปลงนั้น แอปจะส่งข้อมูลไปยังฐานข้อมูลซึ่งเก็บข้อมูลนั้นไว้ในรูปแบบที่ไม่ขึ้นกับภาษา ตัวเลือกในชุดตัวเลือกถูกส่งและเก็บเป็นตัวเลข และตัวเลือกในชนิดข้อมูลสองตัวเลือกจะถูกส่งและเก็บไว้เป็นค่าบูลีน
ป้ายกำกับมีไว้เพื่อการแสดงผลเท่านั้น คุณไม่สามารถทำการเปรียบเทียบโดยตรงกับป้ายกำกับได้เนื่องจากเป็นภาษาเฉพาะ แต่ชุดตัวเลือกแต่ละตัวมีการแจงนับที่ทำงานกับตัวเลขหรือค่าบูลีนแทน ตัวอย่างเช่น คุณไม่สามารถใช้สูตรนี้ได้:
If( ThisItem.OrderStatus = "Active", ...
แต่คุณสามารถใช้สูตรนี้:
If( ThisItem.OrderStatus = OrderStatus.Active, ...
สำหรับชุดตัวเลือกส่วนกลาง (เอนทิตีที่แชร์) ชื่อของการแจงนับชุดตัวเลือกตรงกับชื่อของชุดตัวเลือกสวนกลาง สำหรับชุดตัวเลือกในท้องถิ่น (ซึ่งกำหนดขอบเขตให้กับเอนทิตี) ชื่ออาจมีชื่อของเอนทิตี พฤติกรรมนี้หลีกเลี่ยงความขัดแย้งหากเอนทิตีหลายแห่งมีชุดตัวเลือกที่มีชื่อเดียวกัน ตัวอย่างเช่น เอนทิตี บัญชี อาจมีชุดตัวเลือก OrderStatus และชื่ออาจเป็น OrderStatus(บัญชี) ชื่อนั้นมีช่องว่างและวงเล็บอย่างน้อยหนึ่งรายการ ดังนั้นคุณต้องล้อมรอบด้วยเครื่องหมายอัญประกาศเดี่ยวถ้าคุณอ้างอิงในสูตร
นอกจากนี้ ค่าสองตัวเลือกยังสามารถทำงานเป็นค่าบูลีน ตัวอย่างเช่น ค่าสองตัวเลือกชื่อ TaxStatus อาจมีป้ายกำกับ ต้องเสียภาษี และ ที่ไม่ต้องเสียภาษี ซึ่งสอดคล้องกับ จริง และ เท็จ ตามลำดับ เมื่อต้องการแสดงให้เห็น คุณสามารถใช้สูตรนี้ได้:
If( ThisItem.Taxable = TaxStatus.Taxable, ...
คุณยังสามารถใช้สูตรเทียบเท่านี้ได้:
If( ThisItem.Taxable, ...