![]() |
|
ฟังก์ชันวันที่/เวลาของปฏิทินฟังก์ชันวันที่/เวลาของปฏิทินจะจัดการข้อมูลในประเภทวันที่ เวลา และเวลาที่ลงไว้ (ประเภทข้อมูล เวลาที่ลงไว้ คือการรวมกันของวันที่และเวลา) ฟังก์ชันวันที่ทั้งหมดตรงตามมาตรฐาน ISO 8601 ซึ่งมีผลอย่างยิ่งกับฟังก์ชันจำพวก Week_Of_Year และ Week_Of_Quarter ซึ่งสัปดาห์เริ่มต้นของปีจะเป็นสัปดาห์เต็มสัปดาห์แรกที่มีวันพฤหัสบดี สำหรับข้อมูลที่ให้รายละเอียดเพิ่มเติมในวิธีการคำนวณฟังก์ชันวันที่ โปรดดูมาตรฐาน ISO 8601 Current_Dateแสดงเป็นวันที่ปัจจุบัน วันที่ถูกกำหนดโดยคอมพิวเตอร์ ค่านี้จะไม่มีส่วนประกอบของเวลาอยู่ด้วย Syntax: CURRENT_DATE Current_Timeแสดงเป็นเวลาปัจจุบัน เวลาถูกกำหนดโดยคอมพิวเตอร์ ค่านี้จะไม่มีส่วนประกอบของวันที่อยู่ด้วย หมายเหตุ: ฟังก์ชันนี้แสดงเวลาปัจจุบันขณะรันรายงาน เมื่อใช้ฟังก์ชันนี้กับหัวข้อการวิเคราะห์จะป้องกันไม่ให้เกิดการแคชที่ทำให้ประสิทธิภาพลดลง Syntax: CURRENT_TIME (n) โดยที่:
Current_TimeStampแสดงวันที่/เวลาที่ลงไว้ปัจจุบัน เวลาที่ลงไว้ถูกกำหนดโดยคอมพิวเตอร์ หมายเหตุ: ฟังก์ชันนี้แสดงเวลาปัจจุบันขณะรันรายงาน เมื่อใช้ฟังก์ชันนี้กับหัวข้อการวิเคราะห์จะป้องกันไม่ให้เกิดการแคชที่ทำให้ประสิทธิภาพลดลง Syntax: CURRENT_TIMESTAMP (n) โดยที่:
Day_Of_Quarterส่งคืนตัวเลข (ระหว่าง 1 ถึง 92) ตามวันของไตรมาสของวันที่ที่ระบุ Syntax: DAY_OF_QUARTER (date_expression) โดยที่:
DayNameส่งคืนชื่อของวันในสัปดาห์ (เป็นภาษาอังกฤษ) ของวันที่ที่ระบุ Syntax: DAYNAME (date_expression) โดยที่:
DayOfMonthส่งคืนตัวเลขตามวันของเดือนสำหรับวันที่ที่ระบุ Syntax: DAYOFMONTH (date_expression) โดยที่:
DayOfWeekส่งคืนตัวเลข 1 ถึง 7 ตามวันของสัปดาห์สำหรับวันที่ที่ระบุ โดยที่เลข 1 หมายถึงวันอาทิตย์ และเลข 7 หมายถึงวันเสาร์ Syntax: DAYOFWEEK (date_expression) โดยที่:
DayOfYearส่งคืนตัวเลข (ระหว่าง 1 ถึง 366) ตามวันของปีสำหรับวันที่ที่ระบุ Syntax: DAYOFYEAR (date_expression) โดยที่:
Hourส่งคืนตัวเลข (ระหว่าง 0 ถึง 23) ที่ตรงกับชั่วโมงของเวลาที่ระบุ เช่น 0 ตรงกับ 12 a.m. และ 23 ตรงกับ 11 p.m. Syntax: HOUR (time_expression) โดยที่:
Minuteส่งคืนตัวเลข (ระหว่าง 0 ถึง 59) ที่ตรงกับนาทีของเวลาที่ระบุ Syntax: MINUTE (time_expression) โดยที่:
Monthส่งคืนตัวเลข (ระหว่าง 1 ถึง 12) ที่ตรงกับเดือนสำหรับวันที่ที่ระบุ Syntax: MONTH (date_expression) โดยที่:
Month_Of_Quarterส่งคืนตัวเลข (ระหว่าง 1 ถึง 3) ที่ตรงกับเดือนในไตรมาสสำหรับวันที่ที่ระบุ Syntax: MONTH_OF_QUARTER (date_expression) โดยที่:
MonthNameส่งคืนชื่อของเดือน (เป็นภาษาอังกฤษ) สำหรับวันที่ที่ระบุ Syntax: MONTHNAME (date_expression) โดยที่:
Nowส่งคืนเวลาที่ลงไว้ปัจจุบัน ฟังก์ชัน NOW เหมือนกับฟังก์ชัน CURRENT_TIMESTAMP หมายเหตุ: ฟังก์ชันนี้แสดงเวลาปัจจุบันขณะรันรายงาน เมื่อใช้ฟังก์ชันนี้กับหัวข้อการวิเคราะห์จะป้องกันไม่ให้เกิดการแคชที่ทำให้ประสิทธิภาพลดลง Syntax: NOW () Quarter_Of_Yearส่งคืนตัวเลข (ระหว่าง 1 ถึง 4) ตามไตรมาสของปีสำหรับวันที่ที่ระบุ Syntax: QUARTER_OF_YEAR (date_expression) โดยที่:
Secondส่งคืนตัวเลข (ระหว่าง 0 ถึง 59) ที่ตรงกับวินาทีของเวลาที่ระบุ Syntax: SECOND (time_expression) โดยที่:
TimestampAddฟังก์ชัน TimestampAdd เพิ่มช่วงตามจำนวนที่ระบุเฉพาะลงในเวลาที่ลงไว้ที่ระบุ โดยส่งกลับเวลาที่ลงไว้เพียงเวลาเดียว Syntax: TimestampAdd (ช่วง, integer_expression, timestamp_expression) โดยที่:
นิพจน์จำนวนเต็มที่มีค่านัลหรือนิพจน์เวลาที่ลงไว้ที่มีค่านัลซึ่งถูกส่งผ่านมาที่ฟังก์ชันนี้จะได้รับการส่งคืนค่าเป็นนัล ในสถานการณ์สมมติอย่างง่าย ฟังก์ชันนี้เพียงเพิ่มค่าจำนวนเต็มที่ระบุ (integer_expression) ให้กับส่วนประกอบที่เหมาะสมของเวลาที่ลงไว้ โดยขึ้นกับช่วงเวลา การเพิ่มหนึ่งสัปดาห์หมายถึงการเพิ่มเจ็ดวัน และการเพิ่มหนึ่งไตรมาสหมายถึงการเพิ่มสามเดือน ค่าจำนวนเต็มลบจะหมายถึงการลบออก (ย้อนเวลากลับไป) ค่าที่เกินของส่วนประกอบที่ระบุ (เช่น เกิน 60 วินาที, 24 ชั่วโมง, สิบสองเดือน และอื่นๆ) จะทำให้ต้องเพิ่มจำนวนที่เหมาะสมให้กับส่วนประกอบถัดไป เช่น เมื่อเพิ่มส่วนประกอบวันของเวลาที่ลงไว้ ฟังก์ชันนี้จะพิจารณาค่าที่เกินและคำนึงถึงจำนวนวันในแต่ละเดือน (รวมถึงปีอธิกสุรทิน ซึ่งเดือนกุมภาพันธ์มี 29 วัน) เมื่อเพิ่มส่วนประกอบเดือนของเวลาที่ลงไว้ ฟังก์ชันนี้จะตรวจสอบว่าผลลัพธ์ของเวลาที่ลงไว้มีจำนวนวันเพียงพอสำหรับส่วนประกอบวัน เช่น การเพิ่ม 1 เดือนให้กับ 2000-05-31 จะไม่ได้ผลลัพธ์เป็น 2000-06-31 เนื่องจากเดือนมิถุนายนไม่ได้มี 31 วัน ฟังก์ชันนี้จะลดส่วนประกอบวันเป็นวันสุดท้ายของเดือน ซึ่งได้แก่ 2000-06-30 ในตัวอย่างนี้ ปัญหาในลักษณะเดียวกันนี้เกิดขึ้นเมื่อเพิ่มส่วนประกอบปีของเวลาที่ลงไว้ โดยมีส่วนประกอบเดือนเป็น กุมภาพันธ์ และส่วนประกอบวันคือ 29 (นั่นคือ วันสุดท้ายของเดือนกุมภาพันธ์ ในปีอธิกสุรทิน) หากเวลาที่ลงไว้ผลลัพธ์ไม่อยู่ในปีอธิกสุรทิน ฟังก์ชันจะลดส่วนประกอบวันลงเป็น 28 ต่อไปนี้เป็นตัวอย่างของฟังก์ชัน TimestampAdd: ตัวอย่างรหัสต่อไปนี้ ต้องการทราบผลลัพธ์ของเวลาที่ลงไว้เมื่อมีการเพิ่ม 3 วันให้กับ 2000-02-27 14:30:00 เนื่องจากเดือนกุมภาพันธ์ ปี 2000 เป็นปีอธิกสุรทิน ฟังก์ชันนี้จะส่งคืนเวลาที่ลงไว้เวลาเดียวคือ 2000-03-01 14:30:00 TimestampAdd(SQL_TSI_DAY, 3, TIMESTAMP‘2000-02-27 14:30:00’) ตัวอย่างรหัสต่อไปนี้ ต้องการผลลัพธ์ทราบเวลาที่ลงไว้เมื่อมีการเพิ่ม 7 เดือนให้กับ 1999-07-31 0:0:0 ฟังก์ชันนี้จะส่งคืนเวลาที่ลงไว้เวลาเดียวคือ 2000-02-29 00:00:00 ให้สังเกตการลดลงของส่วนประกอบวันเหลือ 29 เนื่องจากเดือนกุมภาพันธ์สั้นกว่าเดือนอื่นๆ TimestampAdd(SQL_TSI_MONTH, 7, TIMESTAMP‘1999-07-31 00:00:00’) ตัวอย่างรหัสต่อไปนี้ ต้องการผลลัพธ์ของเวลาที่ลงไว้เมื่อมีการเพิ่ม 25 นาทีให้กับ 2000-07-31 23:35:00 ฟังก์ชันนี้จะส่งคืนเวลาที่ลงไว้เวลาเดียวคือ 2000-08-01 00:00:00 ให้สังเกตการส่งต่อค่าที่เกินผ่านไปถึงส่วนประกอบเดือน TimestampAdd(SQL_TSI_MINUTE, 25, TIMESTAMP‘2000-07-31 23:35:00’) TimeStampDiffฟังก์ชัน TimestampDiff ส่งคืนจำนวนรวมของช่วงเวลาที่ระบุระหว่างเวลาที่ลงไว้สองเวลา Syntax: TimestampDiff (ช่วง, timestamp_expression1, timestamp_expression2) โดยที่:
พารามิเตอร์นิพจน์เวลาที่ลงไว้ที่เป็นนัล ซึ่งถูกส่งผ่านมาที่ฟังก์ชันนี้จะได้รับค่าส่งคืนเป็นนัล ขั้นแรก ฟังก์ชันนี้จะพิจารณาส่วนประกอบเวลาที่ลงไว้ที่ตรงกับพารามิเตอร์ช่วงเวลาที่ระบุ เช่น SQL_TSI_DAY จะตรงกับส่วนประกอบวัน และ SQL_TSI_MONTH จะตรงกับส่วนประกอบเดือน จากนั้น ฟังก์ชันจะดูที่ส่วนประกอบในลำดับที่สูงกว่าของเวลาที่ลงไว้ทั้งสองเวลาเพื่อคำนวณจำนวนช่วงเวลารวมของเวลาที่ลงไว้แต่ละรายการ เช่น หากช่วงเวลาที่ระบุตรงกับส่วนประกอบเดือน ฟังก์ชันจะคำนวณจำนวนเดือนรวมของเวลาที่ลงไว้แต่ละรายการโดยการเพิ่มส่วนประกอบเดือนลงไป แล้วคูณส่วนประกอบปีด้วยสิบสอง สุดท้าย ฟังก์ชันจะลบจำนวนช่วงเวลารวมของเวลาที่ลงไว้ที่หนึ่งออกจากจำนวนช่วงเวลารวมของเวลาที่ลงไว้ที่สอง เมื่อคำนวณผลต่างเป็นวัน ฟังก์ชันจะตัดข้อมูลค่าเวลาจากนิพจน์ Timestamp ทั้งสอง แล้วจึงลบค่าวันที่ เมื่อคำนวณผลต่างเป็นสัปดาห์ ฟังก์ชันจะคำนวณผลต่างเป็นวันแล้วหารด้วยเจ็ดก่อนจะปัดเศษ เมื่อคำนวณผลต่างเป็นไตรมาส ฟังก์ชันจะคำนวณผลต่างเป็นเดือนแล้วหารด้วยสามก่อนจะปัดเศษ เมื่อคำนวณผลต่างเป็นปี ฟังก์ชันจะคำนวณผลต่างเป็นเดือนแล้วหารด้วยสิบสองก่อนจะปัดเศษ ฟังก์ชัน TimestampDiff และตัวอย่างผลลัพธ์ตัวอย่างรหัสต่อไปนี้ ต้องการผลต่างเป็นวันระหว่างเวลาที่ลงไว้ 1998-07-31 23:35:00 และ 2000-04-01 14:24:00 ซึ่งฟังก์ชันส่งคืนค่า 610 ให้สังเกตว่าปีอธิกสุรทินในปี 2000 ทำให้มีจำนวนวันเพิ่มขึ้นหนึ่งวัน TimestampDIFF(SQL_TSI_DAY, TIMESTAMP‘1998-07-31 23:35:00’, TIMESTAMP‘2000-04-01 14:24:00’) Week_Of_Quarterส่งคืนตัวเลข (ระหว่าง 1 ถึง 13) ตามสัปดาห์ของไตรมาสสำหรับวันที่ที่ระบุ Syntax: WEEK_OF_QUARTER (date_expression) โดยที่:
Week_Of_Yearส่งคืนตัวเลข (ระหว่าง 1 ถึง 53) ตามสัปดาห์ของปีสำหรับวันที่ที่ระบุ Syntax: WEEK_OF_YEAR (date_expression) โดยที่:
ปีส่งคืนปีสำหรับวันที่ที่ระบุ Syntax: YEAR (date_expression) โดยที่:
ตัวอย่าง: YEAR (CURRENT_DATE) |
กันยายน 2017 | ลิขสิทธิ์ © 2005, 2017, Oracle สงวนลิขสิทธ Legal Notices. |