ฟังก์ชันวันที่และเวลาจะจัดการข้อมูลตาม DATE
และ DATETIME
ฟังก์ชัน | ตัวอย่าง | คำอธิบาย | รูปแบบคำสั่ง |
---|---|---|---|
CURRENT_Date |
|
แสดงวันที่ปัจจุบัน ระบบจะกำหนดวันที่ซึ่ง Oracle BI รันอยู่ |
|
CURRENT_TIME |
|
แสดงเวลาปัจจุบันเป็นจำนวนหลักทศนิยมที่ระบุ ตัวอย่างเช่น HH:MM:SS.SSS ถ้าไม่ได้ระบุอาร์กิวเมนต์ ฟังก์ชันจะแสดงจำนวนทศนิยมดีฟอลต์ |
|
CURRENT_TIMESTAMP |
|
แสดงวันที่/เวลาระบบปัจจุบันเป็นจำนวนหลักทศนิยมที่ระบุ |
|
DAYNAME |
|
แสดงชื่อของวันในสัปดาห์สำหรับเอ็กซ์เพรสชันวันที่ที่ระบุ |
|
DAYOFMONTH |
|
แสดงตัวเลขที่ตรงกับวันในเดือนสำหรับเอ็กซ์เพรสชันวันที่ที่ระบุ |
|
DAYOFWEEK |
|
แสดงตัวเลขระหว่าง 1 ถึง 7 ที่ตรงกับวันในสัปดาห์สำหรับเอ็กซ์เพรสชันวันที่ที่ระบุ ตัวอย่างเช่น 1 ตรงกับวันอาทิตย์เสมอ, 2 ตรงกับวันจันทร์ เช่นนี้เรื่อยไปจนถึงวันเสาร์ ซึ่งจะแสดงเลข 7 |
|
DAYOFYEAR |
|
แสดงตัวเลข (ระหว่าง 1 ถึง 366) ที่ตรงกับวันในปีสำหรับเอ็กซ์เพรสชันวันที่ที่ระบุ |
|
DAY_OF_QUARTER |
|
แสดงตัวเลข (ระหว่าง 1 ถึง 92) ที่ตรงกับวันในไตรมาสสำหรับเอ็กซ์เพรสชันวันที่ที่ระบุ |
|
HOUR |
|
แสดงตัวเลข (ระหว่าง 0 ถึง 23) ที่ตรงกับชั่วโมงสำหรับเอ็กซ์เพรสชันเวลาที่ระบุ ตัวอย่างเช่น 0 ตรงกับ 12 a.m. และ 23 ตรงกับ 11 p.m. |
|
MINUTE |
|
แสดงตัวเลข (ระหว่าง 0 ถึง 59) ที่ตรงกับนาทีสำหรับเอ็กซ์เพรสชันเวลาที่ระบุ |
|
MONTH |
|
แสดงตัวเลข (ระหว่าง 1 ถึง 12) ที่ตรงกับเดือนสำหรับเอ็กซ์เพรสชันวันที่ที่ระบุ |
|
MONTHNAME |
|
แสดงชื่อของเดือนสำหรับเอ็กซ์เพรสชันวันที่ที่ระบุ |
|
MONTH_OF_QUARTER |
|
แสดงตัวเลข (ระหว่าง 1 ถึง 3) ที่ตรงกับเดือนในไตรมาสสำหรับเอ็กซ์เพรสชันวันที่ที่ระบุ |
|
NOW |
|
แสดงเวลาระบบปัจจุบัน ฟังก์ชัน |
|
QUARTER_OF_YEAR |
|
แสดงตัวเลข (ระหว่าง 1 ถึง 4) ที่ตรงกับไตรมาสในปีสำหรับเอ็กซ์เพรสชันวันที่ที่ระบุ |
|
SECOND |
|
แสดงตัวเลข (ระหว่าง 0 ถึง 59) ที่ตรงกับวินาทีสำหรับเอ็กซ์เพรสชันเวลาที่ระบุ |
|
TIMESTAMPADD |
|
เพิ่มช่วงเวลาตามจำนวนที่ระบุในเวลาระบบ และแสดงเวลาระบบเพียงค่าเดียว ตัวเลือกช่วงเวลามีดังนี้: SQL_TSI_SECOND, SQL_TSI_MINUTE, SQL_TSI_HOUR, SQL_TSI_DAY, SQL_TSI_WEEK, SQL_TSI_MONTH, SQL_TSI_QUARTER, SQL_TSI_YEAR |
|
TIMESTAMPDIFF |
|
แสดงจำนวนช่วงเวลาที่ระบุทั้งหมดระหว่างเวลาระบบสองค่า ใช้ช่วงเวลาเดียวกับ TIMESTAMPADD |
|
WEEK_OF_QUARTER |
|
แสดงตัวเลข (ระหว่าง 1 ถึง 13) ที่ตรงกับสัปดาห์ในไตรมาสสำหรับเอ็กซ์เพรสชันวันที่ที่ระบุ |
|
WEEK_OF_YEAR |
|
แสดงตัวเลข (ระหว่าง 1 ถึง 53) ที่ตรงกับสัปดาห์ในปีสำหรับเอ็กซ์เพรสชันวันที่ที่ระบุ |
|
YEAR |
|
แสดงปีสำหรับเอ็กซ์เพรสชันวันที่ที่ระบุ |
|
ต่อไปนี้คือ คำแนะนำบางประการเพื่อให้ได้ผลลัพธ์ที่ดีที่สุด เมื่อใช้ฟังก์ชันวันที่ในเวิร์กบุคของคุณ เพื่อคำนวณงวดตามปีการเงิน, แปลงค่าสตริงเป็นวันที่, แสดงวันที่และเวลาในโซนเวลาที่เฉพาะเจาะจง และคำนวณความแตกต่างเมื่อเวลาผ่านไป
คำนวณปี ไตรมาส และเดือนตามปีการเงิน ดังนี้
โดยปกติ หัวเรื่องจะมีไดเมนชันเวลา ดังนั้นคุณสามารถใช้งวดที่คอนฟิเกอร์ไว้ล่วงหน้าได้ เช่น ไตรมาสตามปีการเงิน เดือนตามปีการเงิน และสัปดาห์ตามปีการเงิน หากคุณมีเพียงฟิลด์วันที่ คุณสามารถคำนวณงวดเหล่านี้ได้ด้วยตัวคุณเองโดยใช้ฟังก์ชันวันที่
ตัวอย่างนี้จะคำนวณไตรมาสตามปีการเงิน ดังนี้
'FY'||cast(YEAR(TIMESTAMPADD(SQL_TSI_MONTH, 7,<date field>)) as char)||'Q'||cast(QUARTER(TIMESTAMPADD(SQL_TSI_MONTH, 7,<same date field>)) as char)
ตัวอย่างนี้จะคำนวณปีและไตรมาสตามปีการเงิน ดังนี้
'FY'||cast(YEAR(TIMESTAMPADD(SQL_TSI_MONTH, 7,<date field>)) as char)||cast(MONTHNAME(<same date field>) as char)
หมายเหตุ:
||
เชื่อมต่อค่าต่างๆcast (xxx(date) as char)
ดึงข้อมูลส่วนของฟิลด์วันที่TIMESTAMPADD
บวก (หรือลบ) งวดออกจากวันที่ ตัวเลือกนี้ใช้ค่าพารามิเตอร์ SQL_TSI_MONTH ในการเพิ่มเดือนการคำนวณข้างต้นจะทำงานได้ดีในตาราง แต่เมื่อใช้ในฟิลเตอร์ การเว้นช่องว่างระหว่างค่าที่ส่งคืนอาจดูผิดปกติ ในกรณีนี้ ให้ใช้การคำนวณที่ดูเข้าใจง่ายกว่าแต่ซับซ้อนยิ่งขึ้นตามตัวอย่างต่อไปนี้
'FY'||evaluate ('to_char(%1,%2)'as char,(EVALUATE('add_months(%1,%2)' as date,<date field>,7)),'YY')||'-Q'||evaluate ('to_char(%1,%2)'as char,(EVALUATE('add_months(%1,%2)' as date,<same date field>,7)),'Q')
'FY'||evaluate ('to_char(%1,%2)'as char,(EVALUATE('add_months(%1,%2)' as date,<date field>,7)),'YY')||'-'||evaluate ('to_char(%1,%2)'as char,<same date field>,'MON')
แปลงค่าสตริงเป็นวันที่ ดังนี้
ในช่องข้อความที่มีชื่อคอลัมน์ของคุณเป็นสีน้ำเงิน ให้แทรก To_DateTime(
ไว่ก่อนชื่อคอลัมน์ แล้วเพิ่มรูปแบบวันที่ที่คุณต้องการใช้ไว้หลังชื่อคอลัมน์ ตามด้วย )
จากนั้นคลิก เพิ่มขั้นตอน
.png
เมื่อคุณใช้ตัวเลือกแก้ไข เพื่อสร้างฟังก์ชันการแปลงค่าวันที่ของคุณ คุณยังสามารถใช้ Allow_Variable_Digits
ในการประมวลผลค่าคอลัมน์ที่มีตัวเลขหนึ่งหรือสองหลัก และอาร์กิวเมนต์ Null_On_Error
เพื่อยกเลิกแถวที่ไม่ตรงกับรูปแบบที่ต้องการได้อีกด้วย โปรดดูวิธีอื่นๆ ในการประมวลผลข้อมูลที่ไม่ตรงกับรูปแบบที่ต้องการที่ REPLACE และ CAST
ใช้ CAST() เพื่อเปลี่ยนแปลงประเภทข้อมูลของค่า แทนการใช้ To_DateTime()
ตัวอย่างเช่น CAST(SalesDate AS DATE)
หรือใช้ตัวเลือก แทนที่ ใน Workbook Designer ให้นาวิเกตในช่องข้อมูลไปยังคอลัมน์ที่คุณต้องการแปลงค่า แล้วคลิกขวาและเลือก แทนที่ คอนฟิเกอร์ประเภทการแทนที่ที่คุณต้องการ แล้วคลิก เพิ่มขั้นตอน
แสดงฟิลด์วันที่และเวลาในโซนเวลาเฉพาะ ดังนี้
ใช้ฟังก์ชัน NEW_TIME ในฐานข้อมูลร่วมกับ EVALUATE ตัวอย่างเช่น
evaluate ('new_time(%1,%2,%3)' as char, "DV - Pipeline and Forecast"."Opportunity"."Last Updated Date",'GMT','AST')
ตรวจสอบให้แน่ใจว่าฟิลด์วันที่มีองค์ประกอบเวลา
คำนวณความแตกต่างเมื่อเวลาผ่านไป ดังนี้
filter (Measure using date <= TIMESTAMPADD(SQL_TSI_DAY,-1,CURRENT_DATE))
Measure - filter (Measure using date <= TIMESTAMPADD(SQL_TSI_DAY,-1,CURRENT_DATE))
1-(filter (Measure using date <= TIMESTAMPADD(SQL_TSI_DAY,-1,CURRENT_DATE))/Measure display as percentage
หมายเหตุ:
SQL_TSI_DAY
อย่างไรก็ตาม คุณสามารถเลือกใช้ WEEK และ MONTH สำหรับสัปดาห์ต่อสัปดาห์และเดือนต่อเดือนได้