แบบสอบถาม 1C รวมถึงภาษาในตัวของแพลตฟอร์ม 1C:Enterprise มีฟังก์ชันสำหรับการทำงานกับวันที่ ช่วยลดความซับซ้อนในการแปลงวันที่ในแบบสอบถาม หลีกเลี่ยงการใช้ ปริมาณมากพารามิเตอร์ ลองดูที่ฟังก์ชันเหล่านี้
วิธีตั้งวันที่ในแบบสอบถาม 1C เป็นค่าคงที่
DATETIME (ปี เดือน วัน ชั่วโมง นาที วินาที)- ตัวเลือก ปี, เดือนและ วันเป็นข้อบังคับ ส่วนอย่างอื่นไม่บังคับ หากไม่ระบุเวลาระบบจะตั้งเวลาเริ่มต้นของวัน
ขอ. ข้อความ= "เลือก
วันที่และเวลา (2016,09,28,12,22,00)";
// ผลลัพธ์: 28 กันยายน 2559 12:22:00 น
นอกจากนี้ สามารถระบุได้เฉพาะตัวเลขเป็นพารามิเตอร์ของฟังก์ชันนี้อย่างชัดเจน คุณไม่สามารถระบุค่าของฟังก์ชันอื่นเป็นพารามิเตอร์ได้ ตัวอย่างเช่น การก่อสร้างนี้จะใช้งานไม่ได้:
ขอ. ข้อความ= "เลือก
DATETIME (ปี (ที่มา.วันที่),09,28,12,22,00)
จาก Directory.Source AS Source";
วิธีรับการเริ่มต้นหรือสิ้นปีครึ่งปีไตรมาสเดือนทศวรรษสัปดาห์วันชั่วโมงนาทีในแบบสอบถาม 1C
ในกรณีนี้จะใช้ฟังก์ชันต่อไปนี้:
- ระยะเวลาเริ่มต้น(วันที่, ระยะเวลา)
- ระยะเวลาสิ้นสุด (วันที่, ระยะเวลา)
เป็นพารามิเตอร์ วันที่ค่าที่มีประเภทถูกส่งผ่าน วันที่.พารามิเตอร์ ระยะเวลา .
ขอ. ข้อความ= "เลือก
ระยะเวลาเริ่มต้น (DATETIME (2016,09,28,12,22,00), DECADE)";
// ผลลัพธ์: 21 กันยายน 2559 0:00:00 น
ขอ. ข้อความ= "เลือก
ระยะเวลาสิ้นสุด (DATETIME (2016,09,28,12,22,00), QUARTER)";
// ผลลัพธ์: 30 กันยายน 2559 23:59:59 น
ดังที่คุณเห็นจากตัวอย่าง คุณสามารถใช้ฟังก์ชันที่ซ้อนกันอื่นๆ ในฟังก์ชันเหล่านี้ได้
วิธีรับปี, วันของปี, ไตรมาส, เดือน, สัปดาห์, วันในสัปดาห์, วัน, ชั่วโมง, นาที, วินาทีจากวันที่ในแบบสอบถาม 1C
ในการดำเนินการนี้ มีฟังก์ชันที่เกี่ยวข้องซึ่งคุณต้องส่งวันที่เป็นพารามิเตอร์
- การทำงาน ปี (วันที่)- ส่งคืนหมายเลขปี;
- การทำงาน DAYYEAR (วันที่)— เพิ่มจำนวนวันในปี
- การทำงาน ไตรมาส (วันที่)— ส่งคืนหมายเลขไตรมาส
- การทำงาน เดือน (วันที่)- ส่งคืนหมายเลขเดือน
- การทำงาน สัปดาห์ (วันที่)— ส่งกลับจำนวนสัปดาห์ในปี
- การทำงาน วันในสัปดาห์ (วันที่)— ส่งกลับจำนวนวันในสัปดาห์ (วันจันทร์ — 1, วันอาทิตย์ — 7)
- การทำงาน วัน (วันที่)- ส่งคืนจำนวนวันในเดือนนั้น
- การทำงาน ชั่วโมง (วันที่)— ส่งคืนชั่วโมง;
- การทำงาน นาที (วันที่)— ส่งคืนนาที;
- การทำงาน วินาที (วันที่)— ส่งคืนวินาที
ขอ. ข้อความ= "เลือก
ปี(วันที่และเวลา (2559,09,28,12,22,00))"- // ผลลัพธ์: 2559
ขอ. ข้อความ= "เลือก
สัปดาห์(วันที่และเวลา (2016,09,28,12,22,00))"- // ผลลัพธ์: 40
ขอ. ข้อความ= "เลือก
วันธรรมดา(วันที่เวลา (2016,09,28,12,22,00))"- // ผลลัพธ์: 3
ขอ. ข้อความ= "เลือก
ประจำปี(วันที่และเวลา (2016,09,28,12,22,00))"- // ผลลัพธ์: 272
ขอ. ข้อความ= "เลือก
วัน(วันที่และเวลา (2559,09,28,12,22,00))"- // ผลลัพธ์: 28
วิธีเพิ่มหรือลบวันที่หนึ่งปีครึ่งปีไตรมาสเดือนทศวรรษสัปดาห์วันชั่วโมงนาทีวินาทีในแบบสอบถาม 1C
เมื่อต้องการทำเช่นนี้ ให้ใช้ฟังก์ชัน AddToDate(วันที่ ระยะเวลา ค่า)
เป็นพารามิเตอร์ วันที่ค่าที่มีประเภทถูกส่งผ่าน วันที่.พารามิเตอร์ ระยะเวลาสามารถใช้ค่าใดค่าหนึ่งต่อไปนี้: ที่สอง, นาที ชั่วโมง วัน สัปดาห์ ทศวรรษ เดือน ไตรมาส ครึ่งปี ปี.
พารามิเตอร์ ความหมายแสดงจำนวนงวดที่จะบวก หากจำเป็นต้องลบช่วงเวลา พารามิเตอร์นั้นก็จะถูกลบออก ความหมายจะต้องเป็นลบ
ขอ. ข้อความ= "เลือก
AddTODate(DATETIME(2016, 9, 28, 12, 22, 0), ครึ่งปี, 1)";
// ผลลัพธ์: 28 มีนาคม 2560 12:22:00 น
ขอ. ข้อความ= "เลือก
AddKDate(DATETIME(2016, 9, 28, 12, 22, 0), DECADE, -1)";
// ผลลัพธ์: 18 กันยายน 2559 12:22:00 น
วิธีคำนวณความแตกต่างของวันที่ในแบบสอบถาม 1C
เมื่อต้องการทำเช่นนี้ ให้ใช้ฟังก์ชัน DifferenceDate (วันที่ 1, วันที่ 2, ระยะเวลา)
พารามิเตอร์ วันที่1- วันที่จะถูกลบออก
พารามิเตอร์ วันที่ 2 —วันที่ที่จะลบ
พารามิเตอร์ ระยะเวลาสามารถใช้ค่าใดค่าหนึ่งต่อไปนี้: ที่สอง, นาที ชั่วโมง วัน เดือน ไตรมาส ปี- จะแสดงเป็นหน่วยที่เราต้องการได้ผลลัพธ์
ขอ. ข้อความ= "เลือก
DifferenceDate(DATETIME(2016, 9, 28, 12, 22, 0), DATETIME(2017, 9, 28, 12, 22, 0), QUARTER)"- // ผลลัพธ์: 4
ขอ. ข้อความ= "เลือก
DifferenceDate(DATETIME(2016, 9, 28, 12, 22, 0), DATETIME(2017, 9, 28, 12, 22, 0), วินาที)";
// ผลลัพธ์: 31,536,000
ในทุกฟังก์ชันยกเว้นฟังก์ชัน วันที่และเวลาเป็นพารามิเตอร์ วันที่สามารถเป็นได้ไม่เพียงแต่ค่าวันที่ที่ระบุ (ค่าคงที่หรือพารามิเตอร์แบบสอบถาม) แต่ยังรวมถึงเขตข้อมูลตารางต้นฉบับด้วย
เอกสารทั้งหมดที่มีอยู่ในการกำหนดค่า 1C และด้วยเหตุนี้การลงทะเบียนเกือบทั้งหมดจะต้องมีแอตทริบิวต์ประเภท Date อย่างน้อยหนึ่งรายการ ซึ่งเป็นสาเหตุที่นักพัฒนาทุกคนจำเป็นต้องรู้และเข้าใจ:
- วิธีแปลงพารามิเตอร์ประเภทอื่นให้เป็นประเภทที่ต้องการ
- วิธีกำหนดวันที่ว่างในคำขอ 1C
- อะไรคือความแตกต่างระหว่างการจำกัดวันที่และเวลา?
เป็นคำถามเหล่านี้ที่เราจะพยายามตอบในบทความของเรา
วันที่คืออะไรและจะตรวจสอบได้อย่างไร
เนื่องจากต้องยอมรับเสียงข้างมาก การตัดสินใจของฝ่ายบริหารและการเก็บบันทึกไม่ต้องการความแม่นยำของเวลาเกิน 1 วินาที ผู้พัฒนาแพลตฟอร์ม 1C ตัดสินใจว่าค่านี้จะเป็นค่าต่ำสุดที่แน่นอนในรูปแบบวันที่ ดังนั้น แต่ละแอตทริบิวต์ที่อธิบายเวลาของเหตุการณ์ในโปรแกรมจะต้องมี:
- ปีที่เหตุการณ์เกิดขึ้น
- เดือนของกิจกรรมนี้
- วัน.
ไม่จำเป็นต้องระบุ: ชั่วโมง นาที และวินาที หากละเว้นพารามิเตอร์ทั้งสามนี้และไม่ใช่ เงื่อนไขเพิ่มเติมโปรแกรมจะตั้งเวลาเริ่มต้นของวันโดยอัตโนมัติ
รูปแบบวันที่ที่มีอยู่ในโลกมีความแตกต่างอย่างมีนัยสำคัญ:
- ในรัสเซีย เราคุ้นเคยกับการให้ความสำคัญกับวันแรก จากนั้นจึงตามด้วยเดือนที่จัดงาน และในช่วงปลายปี
- ผู้ที่อาศัยอยู่ในสหรัฐอเมริกาจะเริ่มต้นวันที่ด้วยเดือน
- เช็ก โปแลนด์ และสโลวีเนียบันทึกช่วงเวลาในรูปแบบ ปี – เดือน – วัน
เป็นรูปแบบหลังที่แพลตฟอร์ม 1C ใช้
แปลงเป็นวันที่
เพื่อให้ได้พารามิเตอร์ประเภท Date จากหลายค่าหรือจากสตริง คุณต้องใช้โค้ดที่แสดงในรูปที่ 1 1
ดังที่เห็นจากภาพด้านบน คุณสามารถกำหนดวันที่ได้โดยใช้บรรทัดเดียวหรือโดยแยกบรรทัดนี้ออกเป็นส่วนต่างๆ โดยใช้ลูกน้ำ ผลลัพธ์จะไม่เปลี่ยนแปลง
สิ่งสำคัญคือต้องเข้าใจว่าปีของวันที่ต้องมีตัวเลขสี่หลัก รวมถึงสหัสวรรษและศตวรรษของเหตุการณ์ เดือน วัน ชั่วโมง และวินาทีต้องมีความยาวอักขระสองตัวและมีศูนย์นำหน้าด้วย
การนับถอยหลังในโปรแกรมเริ่มตั้งแต่ต้นวันที่ 1 มกราคม 0001 สำหรับโค้ดข้างต้น ค่านี้สามารถกำหนดได้ด้วยวิธีใดวิธีหนึ่งจากสองวิธี (รูปที่ 2)
ข้าว. 2
ในบรรทัดที่สอง เราละเว้นชั่วโมง นาที และวินาทีของเหตุการณ์ ซึ่งไม่มีผลกระทบต่อประสิทธิภาพของโค้ดของเราเลย
คุณสมบัติของการใช้วันที่ในแบบสอบถาม 1C
สำหรับประเภทข้อมูลส่วนใหญ่ที่ใช้โดยแพลตฟอร์ม 1C มีค่าเป็นโมฆะที่กำหนดไว้ล่วงหน้า สำหรับตัวเลขจะเป็น 0 สำหรับลิงก์คุณสามารถกำหนดค่า EmptyLink() สำหรับวันที่ ค่าว่างจะถือเป็นวันที่เริ่มต้น และด้วยเหตุนี้จึงต้องเปรียบเทียบรายละเอียดของประเภทที่เกี่ยวข้องเมื่อตั้งค่า ขอพารามิเตอร์
สิ่งสำคัญคือต้องเข้าใจว่าแม้ว่าจะไม่ได้ระบุตัวเลขในค่าของแอตทริบิวต์แบบฟอร์มที่มีประเภทที่ต้องการนั่นคือหน้าต่างจะมีลักษณะดังนี้ (รูปที่ 3) แต่ก็ไม่ได้หมายความว่าไม่มีการระบุสิ่งใดไว้ในนั้น การเปรียบเทียบพารามิเตอร์นี้กับสตริงว่างจะไม่ทำงาน
ข้าว. 3
เมื่อได้รับวันที่ว่างแล้วเราสามารถระบุเป็นพารามิเตอร์ตามคำขอของเราได้นั่นคือใช้โครงสร้าง (รูปที่ 4)
อย่างไรก็ตาม มีหลายครั้งที่เป็นการดีกว่าที่จะตรวจสอบภายในเนื้อหาคำขอ โดยไม่ผ่านวันที่ว่างเป็นพารามิเตอร์ ในการดำเนินการนี้ คุณสามารถป้อนเงื่อนไขที่เหมาะสมในรหัสคำขอ (รูปที่ 5) และใช้ฟังก์ชันคำขอ DateTime()
ข้าว. 5
ในข้อความคำขอข้างต้น เราละเว้นเลขศูนย์นำหน้าของปี เดือน และวัน และไม่ได้ระบุชั่วโมง นาที และวินาที และอย่างที่พวกเขาพูดกันว่าโปรแกรมกินหมดสมมติฐานนี้
ขอบเขตวันที่และเวลา
อื่น ข้อเท็จจริงที่น่าสนใจที่เกี่ยวข้องกับความสัมพันธ์ระหว่างแบบสอบถามและวันที่คือการใช้แนวคิด "จุดเวลา" ในการเข้าถึงตารางฐานข้อมูลต่างๆ
ความแม่นยำ "สูงถึงมิลลิวินาที" ที่ระบุในเอกสารทางเทคนิคเมื่ออธิบายประเภทวันที่ดั้งเดิมนั้นชัดเจนที่สุดเมื่อเลือกบันทึกจากตารางเสมือนของการลงทะเบียนการสะสม: หากการลงทะเบียนการสะสมนอกเหนือจากตารางการหมุนเวียนมีส่วนที่เหลือ และตารางคงเหลือและมูลค่าการซื้อขาย จากนั้นจึงสุ่มตัวอย่างเป็นระยะเวลาหนึ่ง อาจให้ผลลัพธ์ที่แตกต่างออกไป
เพื่อให้เข้าใจว่าสิ่งนี้เกิดขึ้นได้อย่างไรและทำไม ลองพิจารณาตัวอย่างง่ายๆ:
- ก่อนดำเนินการเอกสารการขายในเวลา 12 ชั่วโมง 31 นาที 36 วินาที ยอดคงเหลือตามระบบการตั้งชื่อน้ำตาลคือ 30 กิโลกรัม
- เอกสารตัดออก 10 กิโลกรัมตามเวลาที่กำหนด
- รายงานที่สร้างขึ้นในวันที่เอกสารเวลา 12 ชั่วโมง 31 นาที 36 วินาที ตามตารางที่เหลือจะแสดงยอดคงเหลือ 30 กิโลกรัม
- รายงานเดียวกันบนโต๊ะ ยอดคงเหลือและมูลค่าการซื้อขายในเวลาเดียวกันจะแสดงยอดคงเหลือ 20 กก.
สาเหตุของพฤติกรรมนี้คืออะไรและจะหลีกเลี่ยงได้อย่างไร?
ปัญหาคือในตารางที่เหลือ ช่วงเวลาถูกระบุเป็นส่วนเปิด นั่นคือ การเคลื่อนไหวที่เกิดขึ้นในขณะที่สร้างรายงานจะไม่ถูกนำมาพิจารณา นั่นคือ เวลาจะถูกนำมาที่จุดเริ่มต้นของวินาทีที่ระบุใน พารามิเตอร์ ในเวลาเดียวกัน สำหรับตาราง Turnovers และตาราง Remains and Turnovers ขอบเขตของเวลาจะถูกนำมาพิจารณา นั่นคือ เวลาจะถูกนำมาเมื่อสิ้นสุดวินาทีที่ระบุ
มีหลายวิธีในสถานการณ์นี้:
- เมื่อใช้ตาราง Remains ให้ระบุเวลาที่มากกว่าจุดที่ระบุ 1 วินาที
- ใช้เฉพาะตารางคงเหลือและมูลค่าการซื้อขาย (ไม่ใช่ตัวเลือกที่เหมาะสมที่สุดจากมุมมองของประสิทธิภาพ)
- ใช้แนวคิดเรื่องขอบเขต
ตัวเลือกสุดท้ายสามารถแสดงได้ด้วยรหัสที่แสดงในรูปที่ 1 6.
ในพารามิเตอร์แรกของออบเจ็กต์ของเรา เราระบุวันที่ที่จะต้องสร้างรายงาน พารามิเตอร์ที่สองจะกำหนดประเภทของเส้นขอบ เนื่องจากเป็นสิ่งสำคัญสำหรับเราที่การเคลื่อนไหวในวันที่กำหนดจะถูกรวมไว้ในการเลือก เราจึงต้องตั้งค่าพารามิเตอร์นี้ให้อยู่ในตำแหน่ง "รวม"
ประเภท "วันที่" ใน 1C เป็นหนึ่งใน 4 ประเภทข้อมูลหลัก พร้อมด้วยตัวเลข สตริง และบูลีน วันที่นั้นมีอยู่ทั่วไปในการกำหนดค่า จึงเป็นไปไม่ได้ที่จะหลีกเลี่ยงการทำงานกับข้อมูลประเภทนี้ในระหว่างการพัฒนา ดังนั้นจึงเป็นการดีกว่าที่จะเริ่มเขียนแบบสอบถามเพื่อทำความเข้าใจวิธีการประมวลผลวันที่มีตัวเลือกใดบ้างในการทำงานกับพวกเขาและวิธีการจัดเก็บ มาดูตัวอย่างความแตกต่างของการเขียนข้อความค้นหาที่มีวันที่ต่างกันกัน
ตัวอย่างการทำงานกับวันที่ในแบบสอบถาม 1C
ก่อนอื่นคุณต้องได้รับวันที่ในคำขอในรูปแบบที่ต้องการ - มีหรือไม่มีเวลาก็ได้ มีหลายวิธีในการทำงานนี้ให้สำเร็จ:
- ผ่านพารามิเตอร์ คุณสามารถรับวันที่เซสชันปัจจุบันได้โดยใช้วิธีนี้เท่านั้น
- รับวันที่ในแบบสอบถามจากช่องการเลือก
- แปลงจากค่าตัวเลขโดยใช้ฟังก์ชัน DATETIME()
งานที่พบบ่อยที่สุดเมื่อทำงานกับเอกสารคือการตรวจสอบวันที่ว่างในคำขอ 1C ในกรณีนี้ วิธีที่ง่ายที่สุดในการเปรียบเทียบตัวแปรหรือฟิลด์กับวันที่ว่างเปล่า ซึ่งได้มาจากการใช้ฟังก์ชัน DATETIME(1,1,1):
วันที่และเวลา (1, 1, 1)เมื่อใช้คำสั่งที่คล้ายกัน คุณจะได้รับวันที่และเวลาตามที่ต้องการในคำขอ นอกจากนี้ยังสามารถระบุได้อย่างแม่นยำถึงหนึ่งวินาทีโดยระบุตัวเลข 6 ตัวเป็นพารามิเตอร์ หากใช้เพียง 3 ตัวเลข ชั่วโมง นาที และวินาทีจะถูกตั้งค่าเป็น 0 (เริ่มต้นของวัน) ตัวอย่างเช่น เราต้องเลือกเอกสารสำหรับ 10 วันแรกของเดือนมกราคม 2018 ในคำขอ:
เลือกใบเสร็จรับเงินไปยังบัญชีปัจจุบัน เชื่อมโยง AS จากเอกสาร ใบเสร็จรับเงินไปยังบัญชีปัจจุบัน โดยที่ใบเสร็จรับเงินไปยังบัญชีปัจจุบัน 10, 23, 59, 59)ในการสืบค้นในภาษา 1C ในตัว คุณไม่เพียงสามารถเลือกฟิลด์ต่างๆ และรับพารามิเตอร์ได้เท่านั้น มีฟังก์ชันมากมายที่ช่วยให้จัดรูปแบบวันที่สำหรับงานเฉพาะได้ง่ายขึ้น หากคุณมักจะทำงานกับวันที่ในคิวรี คุณควรรู้คำสั่งเหล่านี้:
- จุดเริ่มต้นของช่วงเวลาพารามิเตอร์ระบุวันที่และช่วงเวลาในบริบทที่จำเป็นเพื่อให้ได้จุดเริ่มต้นของวันที่ ใช้ในการแปลงวันที่เป็นรูปแบบอมตะ ในการดำเนินการนี้ คุณต้องตั้งค่าพารามิเตอร์ตัวที่สอง – “DAY”;
- สิ้นสุดระยะเวลาคำสั่งที่คล้ายกันที่ส่งคืนวันที่สุดท้ายในรูปของหน่วยที่ระบุในพารามิเตอร์
- เพิ่มวันที่ช่วยให้คุณได้รับวันที่มากกว่า ปริมาณที่ระบุหน่วยเวลาที่กำหนด พารามิเตอร์ฟังก์ชันประกอบด้วยวันที่ หน่วยเวลา และตัวเลข
- วันที่แตกต่างรับค่าส่วนต่างระหว่างวันที่ในหน่วยที่ระบุ
- วันในสัปดาห์ส่งกลับเลขลำดับของวันใดวันหนึ่งในสัปดาห์
การใช้ฟังก์ชันเหล่านี้อย่างถูกต้องทำให้นักพัฒนาสามารถแก้ไขปัญหาที่ไม่สำคัญได้ ตัวอย่างเช่น รับชื่อวันในสัปดาห์ของวันที่ปัจจุบันในคำขอเป็นสตริง:
การเลือก WHENWEEKDAY(&CurrentDate) = 1 จากนั้น "วันจันทร์" WHENWEEKDAY(&CurrentDate) = 2 จากนั้น "วันอังคาร" WHENWEEKDAY(&CurrentDate) = 3 จากนั้น "วันพุธ" WHENWEEKDAY(&CurrentDate) = 4 จากนั้น "วันพฤหัสบดี" เมื่อวัน สัปดาห์(&CurrentDate) = 5 จากนั้น "วันศุกร์" เมื่อไหร่ของสัปดาห์(&CurrentDate) = 6 จากนั้น "วันเสาร์" มิฉะนั้น "วันอาทิตย์" จะสิ้นสุดการแปลงประเภทในแบบสอบถาม 1C จากตัวเลขหรือสตริงเป็นวันที่นั้นเป็นงานที่ต้องใช้แรงงานมาก คุณสามารถรับวันที่จากตัวเลขได้โดยใช้ฟังก์ชัน DATETIME จากสตริง โดยการรวมฟังก์ชัน SUBSTRING และโครงสร้าง SELECT WHEN THEN ELSE ด้วยเหตุนี้ นักพัฒนาจึงต้องการรับวันที่จากประเภทอื่นในโมดูลและส่งต่อไปยังคำขอโดยใช้พารามิเตอร์ ขออภัย การดำเนินการนี้ไม่สามารถทำได้เสมอไป ดังนั้นคุณต้องเปลี่ยนรูปแบบวันที่ในคำขอ
เป็นไปได้ที่จะระบุวันที่ในคำขอ 1C เป็นพารามิเตอร์เพื่อรับข้อมูลจากตารางการลงทะเบียนเสมือน บทบาทนี้ยังสามารถใช้ฟังก์ชันข้างต้นทั้งหมดได้ แต่สิ่งสำคัญคือต้องไม่อนุญาตให้มีวันที่ว่างในคำขอ 1C ส่งผล ผลลัพธ์สุดท้ายการรันโค้ดจึงจำเป็นต้องทำการตรวจสอบ
บ่อยครั้งมีความจำเป็นต้องทำงานกับตัวแปรประเภท "วันที่" ในบทความนี้ เราจะดูเทคนิคพื้นฐาน - การผ่านวันที่ปัจจุบัน การตรวจสอบค่าว่าง วันที่ที่กำหนดเอง
เมื่อเขียนแบบสอบถาม คุณมักจะต้องเปรียบเทียบข้อมูลกับวันที่ปัจจุบัน ภาษา 1C ในตัวมีฟังก์ชัน CurrentDate() ช่วยให้คุณสามารถกำหนดเวลาและวันที่ปัจจุบันบนคอมพิวเตอร์ของคุณได้ ในการดำเนินการกับวันที่ปัจจุบัน คุณต้องส่งค่าของฟังก์ชันนี้เป็นพารามิเตอร์ไปยังคำขอ
ด้านล่างนี้คือแบบสอบถามที่เลือกไฟล์ทั้งหมดที่แนบมากับรายงานค่าใช้จ่ายพร้อมวันที่สร้างจนถึงตอนนี้:
ExampleRequest = คำขอใหม่;
ตัวอย่าง Request.Text = "
|เลือก
- AdvanceReportAttachedFiles.Link
|จาก
- Directory.AdvanceReportAttachedFilesAS AdvanceReportAttachedFiles
|ที่ไหน
- AdvanceReportAttachedFiles.Date< &ТекДата»;
ตัวอย่าง Request.SetParameter("CurrentDate", CurrentDate());
วันที่กำหนดเอง
ฟังก์ชั่นที่กล่าวถึงข้างต้นช่วยให้คุณสามารถเปรียบเทียบและเลือกช่วงเวลาใดก็ได้ วิธีการนี้ช่วยให้คุณสามารถระบุการเลือกที่เข้มงวดในคำขอได้โดยไม่ต้องใช้พารามิเตอร์เพิ่มเติม
โปรดทราบว่าเมื่อใช้ฟังก์ชันนี้ในตัวอย่างด้านบน เราได้ส่งตัวเลขสามตัวเท่านั้น (ปี เดือน วัน) เป็นพารามิเตอร์อินพุต สามรายการสุดท้าย (ชั่วโมง นาที วินาที) เป็นทางเลือก และหากไม่มีจะแทนที่ด้วย "0" ซึ่งก็คือจุดเริ่มต้นของวัน
ภายใน ตัวอย่างนี้ไฟล์ทั้งหมดที่แนบมากับรายงานค่าใช้จ่ายจนถึงสิ้นปี 2559 จะได้รับ โดยเราจะระบุชั่วโมง นาที และวินาที เพื่อเปรียบเทียบช่วงเวลา “วันที่ 31 ธันวาคม 2559 23:59:59 น.”
เลือก
AdvanceReportAttachedFiles.Link
จาก
Directory.AdvanceReportAttachedFiles AS AdvanceReportAttachedFiles
ที่ไหน
AdvanceReportAttachedFiles.Date< ДАТАВРЕМЯ(2016, 12, 31, 23, 59, 59)
วันที่ว่างเปล่า
วิธีที่ง่ายที่สุดในการตรวจสอบตัวแปรเพื่อดูว่ามีวันที่ว่างหรือไม่คือการใช้การเปรียบเทียบง่ายๆ ในตัวอย่างนี้ เราจะใช้แบบสอบถามเพื่อเลือกใบเสร็จรับเงินทั้งหมด เงินสดไปยังบัญชีที่ไม่ได้กรอกวันที่เข้ามา