ฟังก์ชันวันที่และเวลา

ฟังก์ชันวันที่และเวลาจะจัดการข้อมูลตาม DATE และ DATETIME

ฟังก์ชัน ตัวอย่าง คำอธิบาย รูปแบบคำสั่ง

CURRENT_Date

CURRENT_DATE

แสดงวันที่ปัจจุบัน

ระบบจะกำหนดวันที่ซึ่ง Oracle BI รันอยู่

CURRENT_DATE

CURRENT_TIME

CURRENT_TIME(3)

แสดงเวลาปัจจุบันเป็นจำนวนหลักทศนิยมที่ระบุ ตัวอย่างเช่น HH:MM:SS.SSS

ถ้าไม่ได้ระบุอาร์กิวเมนต์ ฟังก์ชันจะแสดงจำนวนทศนิยมดีฟอลต์

CURRENT_TIME(expr)

CURRENT_TIMESTAMP

CURRENT_TIMESTAMP(3)

แสดงวันที่/เวลาระบบปัจจุบันเป็นจำนวนหลักทศนิยมที่ระบุ

CURRENT_TIMESTAMP(expr)

DAYNAME

DAYNAME(Order_Date)

แสดงชื่อของวันในสัปดาห์สำหรับเอ็กซ์เพรสชันวันที่ที่ระบุ

DAYNAME(expr)

DAYOFMONTH

DAYOFMONTH(Order_Date)

แสดงตัวเลขที่ตรงกับวันในเดือนสำหรับเอ็กซ์เพรสชันวันที่ที่ระบุ

DAYOFMONTH(expr)

DAYOFWEEK

DAYOFWEEK(Order_Date)

แสดงตัวเลขระหว่าง 1 ถึง 7 ที่ตรงกับวันในสัปดาห์สำหรับเอ็กซ์เพรสชันวันที่ที่ระบุ ตัวอย่างเช่น 1 ตรงกับวันอาทิตย์เสมอ, 2 ตรงกับวันจันทร์ เช่นนี้เรื่อยไปจนถึงวันเสาร์ ซึ่งจะแสดงเลข 7

DAYOFWEEK(expr)

DAYOFYEAR

DAYOFYEAR(Order_Date)

แสดงตัวเลข (ระหว่าง 1 ถึง 366) ที่ตรงกับวันในปีสำหรับเอ็กซ์เพรสชันวันที่ที่ระบุ

DAYOFYEAR(expr)

DAY_OF_QUARTER

DAY_OF_QUARTER(Order_Date)

แสดงตัวเลข (ระหว่าง 1 ถึง 92) ที่ตรงกับวันในไตรมาสสำหรับเอ็กซ์เพรสชันวันที่ที่ระบุ

DAY_OF_QUARTER(expr)

HOUR

HOUR(Order_Time)

แสดงตัวเลข (ระหว่าง 0 ถึง 23) ที่ตรงกับชั่วโมงสำหรับเอ็กซ์เพรสชันเวลาที่ระบุ ตัวอย่างเช่น 0 ตรงกับ 12 a.m. และ 23 ตรงกับ 11 p.m.

HOUR(expr)

MINUTE

MINUTE(Order_Time)

แสดงตัวเลข (ระหว่าง 0 ถึง 59) ที่ตรงกับนาทีสำหรับเอ็กซ์เพรสชันเวลาที่ระบุ

MINUTE(expr)

MONTH

MONTH(Order_Time)

แสดงตัวเลข (ระหว่าง 1 ถึง 12) ที่ตรงกับเดือนสำหรับเอ็กซ์เพรสชันวันที่ที่ระบุ

MONTH(expr)

MONTHNAME

MONTHNAME(Order_Time)

แสดงชื่อของเดือนสำหรับเอ็กซ์เพรสชันวันที่ที่ระบุ

MONTHNAME(expr)

MONTH_OF_QUARTER

MONTH_OF_QUARTER(Order_Date)

แสดงตัวเลข (ระหว่าง 1 ถึง 3) ที่ตรงกับเดือนในไตรมาสสำหรับเอ็กซ์เพรสชันวันที่ที่ระบุ

MONTH_OF_QUARTER(expr)

NOW

NOW()

แสดงเวลาระบบปัจจุบัน ฟังก์ชัน NOW เทียบเท่ากับฟังก์ชัน CURRENT_TIMESTAMP

NOW()

QUARTER_OF_YEAR

QUARTER_OF_YEAR(Order_Date)

แสดงตัวเลข (ระหว่าง 1 ถึง 4) ที่ตรงกับไตรมาสในปีสำหรับเอ็กซ์เพรสชันวันที่ที่ระบุ

QUARTER_OF_YEAR(expr)

SECOND

SECOND(Order_Time)

แสดงตัวเลข (ระหว่าง 0 ถึง 59) ที่ตรงกับวินาทีสำหรับเอ็กซ์เพรสชันเวลาที่ระบุ

SECOND(expr)

TIMESTAMPADD

TIMESTAMPADD(SQL_TSI_MONTH, 12,Time."Order Date")

เพิ่มช่วงเวลาตามจำนวนที่ระบุในเวลาระบบ และแสดงเวลาระบบเพียงค่าเดียว

ตัวเลือกช่วงเวลามีดังนี้: SQL_TSI_SECOND, SQL_TSI_MINUTE, SQL_TSI_HOUR, SQL_TSI_DAY, SQL_TSI_WEEK, SQL_TSI_MONTH, SQL_TSI_QUARTER, SQL_TSI_YEAR

TIMESTAMPADD(interval, expr, timestamp)

TIMESTAMPDIFF

TIMESTAMPDIFF(SQL_TSI_MONTH, Time."Order Date",CURRENT_DATE)

แสดงจำนวนช่วงเวลาที่ระบุทั้งหมดระหว่างเวลาระบบสองค่า

ใช้ช่วงเวลาเดียวกับ TIMESTAMPADD

TIMESTAMPDIFF(interval, expr, timestamp2)

WEEK_OF_QUARTER

WEEK_OF_QUARTER(Order_Date)

แสดงตัวเลข (ระหว่าง 1 ถึง 13) ที่ตรงกับสัปดาห์ในไตรมาสสำหรับเอ็กซ์เพรสชันวันที่ที่ระบุ

WEEK_OF_QUARTER(expr)

WEEK_OF_YEAR

WEEK_OF_YEAR(Order_Date)

แสดงตัวเลข (ระหว่าง 1 ถึง 53) ที่ตรงกับสัปดาห์ในปีสำหรับเอ็กซ์เพรสชันวันที่ที่ระบุ

WEEK_OF_YEAR(expr)

YEAR

YEAR(Order_Date)

แสดงปีสำหรับเอ็กซ์เพรสชันวันที่ที่ระบุ

YEAR(expr)

คำแนะนำการใช้ฟังก์ชันวันที่

ต่อไปนี้คือ คำแนะนำบางประการเพื่อให้ได้ผลลัพธ์ที่ดีที่สุด เมื่อใช้ฟังก์ชันวันที่ในเวิร์กบุคของคุณ เพื่อคำนวณงวดตามปีการเงิน, แปลงค่าสตริงเป็นวันที่, แสดงวันที่และเวลาในโซนเวลาที่เฉพาะเจาะจง และคำนวณความแตกต่างเมื่อเวลาผ่านไป

คำนวณปี ไตรมาส และเดือนตามปีการเงิน ดังนี้

โดยปกติ หัวเรื่องจะมีไดเมนชันเวลา ดังนั้นคุณสามารถใช้งวดที่คอนฟิเกอร์ไว้ล่วงหน้าได้ เช่น ไตรมาสตามปีการเงิน เดือนตามปีการเงิน และสัปดาห์ตามปีการเงิน หากคุณมีเพียงฟิลด์วันที่ คุณสามารถคำนวณงวดเหล่านี้ได้ด้วยตัวคุณเองโดยใช้ฟังก์ชันวันที่

ตัวอย่างนี้จะคำนวณไตรมาสตามปีการเงิน ดังนี้

'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')

แปลงค่าสตริงเป็นวันที่ ดังนี้

Oracle Analytics กำหนดโปรไฟล์ข้อมูลของคุณ และแสดงคำแนะนำการเพิ่มความสมบูรณ์สำหรับการดึงข้อมูลและการแปลงค่าวันที่ หากคุณต้องการแปลงค่าสตริงเป็นวันที่ด้วยตัวคุณเอง ให้ใช้คำแนะนำเหล่านี้
  • ใน Workbook Designer ให้นาวิเกตในช่องข้อมูลไปยังคอลัมน์ที่คุณต้องการแปลงค่า แล้วคลิกขวาและเลือก แปลงเป็นวันที่ คอนฟิเกอร์วันที่ แล้วคลิก เพิ่มขั้นตอน

  • ใน Workbook Designer ให้นาวิเกตในช่องข้อมูลไปยังคอลัมน์ที่คุณต้องการแปลงค่า แล้วคลิกขวาและเลือก แก้ไข คอนฟิเกอร์วันที่ แล้วคลิก เพิ่มขั้นตอน

    ในช่องข้อความที่มีชื่อคอลัมน์ของคุณเป็นสีน้ำเงิน ให้แทรก To_DateTime( ไว่ก่อนชื่อคอลัมน์ แล้วเพิ่มรูปแบบวันที่ที่คุณต้องการใช้ไว้หลังชื่อคอลัมน์ ตามด้วย ) จากนั้นคลิก เพิ่มขั้นตอน
    คำอธิบาย GUID-ADBD035B-A62A-4DED-8768-553365BAABFE-default.png มีดังนี้
    .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 สำหรับสัปดาห์ต่อสัปดาห์และเดือนต่อเดือนได้
  • ตัวอย่างเหล่านี้สามารถใช้กับปฏิทินปกติและปฏิทินธรรมชาติได้ หากคุณต้องการเดือนและไตรมาสตามปีการเงิน ให้ใช้ตัวแปรของพื้นที่เก็บข้อมูลในการคำนวณของคุณแทน TIMESTAMPADD หรือใช้ขั้นตอนนี้ร่วมกับคำแนะนำ คำนวณปี ไตรมาส และเดือนตามปีการเงิน
  • หัวเรื่องบางรายการรวมการวัด Prior X ที่คำนวณไว้ล่วงหน้า เช่น PY (ปีก่อนหน้า), PQ (ไตรมาสก่อนหน้า) ซึ่งคุณสามารถใช้ในการคำนวณความแตกต่างเมื่อเวลาผ่านไปได้
  • นอกจากนี้ คุณยังสามารถใช้ฟังก์ชัน TIME SERIES: AGO, PERIODROLLING และ TODATE ได้เช่นกัน โปรดดู ฟังก์ชันชุดเวลา