Oracle Tips : Amazing Oracle Date Function Part#2
Oracle Tips : Amazing Oracle Date Function Part#2
สวัสดีครับมาต่อตอนที่ 2 กับ Oracle Date Function กันครับ สำหรับฟังก์ชันที่จะแนะนำคือ
4. NEXT_DAY Function
ฟังก์ชันนี้ไม่ได้ใช้สำหรับการหาวันที่ของวันพรุ่งนี้เฉยๆครับ แต่เป็นฟังก์ชันสำหรับการหาวันที่ในอนาคต
ไม่เกิน 7 วัน Sunday – SATURDAY เท่านั้นเอง โดยมีรูปแบบดังนี้
NEXT_DAY(<date>, <day of week such SUN, MON, ?, SAT> ) |
SQL> select next_day(sysdate,’MON’) NEXT_MON, next_day(sysdate,’WED’) NEXT_WED from dual; NEXT_MON NEXT_WED ——————- ——————– 20-JUL-2009 22-JUL-2009 |
5. TRUNC Function
ฟังก์ชันนี้จะว่าไปก็ไม่ใช่ฟังก์ชันเกี่ยวกับ Date ซะทีเดียว แต่เอามาประยุกต์ใช้ด้วยกันได้ โดยฟังก์ชันนี้
เราจะใช้ในการ reset ค่าวัน/เวลาให้กับเป็นค่าเริ่มต้น เช่น เวลาแรกของวัน, วันแรกของเดือน, เดือนแรกของปี เป็นต้น
โดยมีรูปแบบการใช้งานดังนี้
TRUNC( <date_time>) |
SQL> select sysdate,trunc(sysdate) FIRST_TIME, 2 trunc(sysdate,’MON’) FIRST_DAY, 3 trunc(sysdate,’YYYY’) FIRST_MONTH, 4 trunc(sysdate,’HH’) FIRST_MIN, 5 trunc(sysdate,’MI’) FIRST_SEC 6 from dual;SYSDATE FIRST_TIME FIRST_DAY ——————– —————————— ——————– FIRST_MONTH FIRST_MIN FIRST_SEC ——————– —————————- ——————– 18-JUL-2009 02:02:51 18-JUL-2009 00:00:00 01-JUL-2009 00:00:00 01-JAN-2009 00:00:00 18-JUL-2009 02:00:00 18-JUL-2009 02:02:00 |
6. MONTHS_BETWEEN Function
ฟังก์ชันนี้เราใช้สำหรับหาจำนวนเดือนระหว่างวันที่ 2 วันครับ ช่วยประหยัดเวลาในการเอาวันที่มาลบกันแล้วมาคำนวนแปลงให้เป็นจำนวนเต็มได้ดีทีเดียว มีรูปแบบการใช้งานดังนี้
MONTHS_BETWEEN( <lastest_date>, <earliest_date>) |
SQL> SELECT MONTHS_BETWEEN(SYSDATE-365, SYSDATE+365) FROM dual;
MONTHS_BETWEEN(SYSDATE-365,SYSDATE+365) SQL> SELECT MONTHS_BETWEEN(SYSDATE+365, SYSDATE-365) FROM dual; MONTHS_BETWEEN(SYSDATE+365,SYSDATE-365) |
จากตัวอย่างหากเราระบุวันตั้งต้นน้อยกว่าวันเปรียบเทียบก็จะทำให้ได้ค่าลบออกมานั่นเองครับ
ถ้าเรารู้ว่ามีฟังก์ชันสะดวกแบบนี้ก็จะได้ไม่ต้องเขียนฟังก์ชันคำนวนเองอีกแล้วครับ
อ่ะ…แต่ยังไม่หมดเรื่อง DATE Function ครับ ยังมีต่ออีก 1 ตอน พบกันพรุ่งนี้ครับ