Oracle คำสั่ง TRUNC เบื้องต้น
บทความนี้เรามาดูคำสั่งใน Oracle กันอีกซักหน่อย ซึ่งคำสั่งนั้นคือ TRUNC ครับ ในคำสั่ง TRUNC นั้นสามารถใช้ได้ทั้งตัวเลขและก็เวลาเลยครับ
นั่นก็แปลว่ามันจะมีทั้งคำสั่ง TRUNC(date) และก็ TRUNC(number) มาดู Syntax กันก่อนดีกว่าครับ
TRUNC(number)
Syntax ของ TRUNC(number) แสดงได้ดังด้านล่างTRUNC(n1 [, n2 ])
TRUNC(number) เมื่อเรียกใช้จะรีเทิร์นค่าเป็นตัวเลขที่ถูกตัดออก ตัวตำแหน่งของตัวที่ถูกตัดออกจะถูกกำหนดด้วย n2 แต่ถ้าไม่ได้กำหนด n2 มาให้ n2 จะถูกแทนที่ด้วยเลข 0
ในฟังก์ชัน TRUNC(number) นี้เราสามารถกำหนดได้ทั้งจำนวนลบ บวก หรือ 0 ก็ได้ทั้งนั้น เรามาดูตัวอย่างการใช้งานกัน
ตัวอย่างคำสั่ง TRUNC(number) แบบง่าย ๆ
select trunc(19.32, 0) from dual;
ผลลัพธ์ที่ได้ก็คือ 19 เพราะตัดตำแหน่งที่ 0
select trunc(19.32, 1) from dual;
ผลลัพธ์ที่ได้คือ 19.3 เพราะตัดตำแหน่งที่ 1
select trunc(19.32, -1) from dual;
ผลลัพธ์ที่ได้คือ 10 เพราะตัดตำแหน่งที่ -1 นั่นคือย้อนกลับไปหนึ่งตำแหน่งก็คือ 10 เลข 9 ตัดทิ้ง
TRUNC(date)
Syntax ของ TRUNC(date) แสดงได้ดังด้านล่าง
TRUNC(date) เมื่อเรียกใช้ฟังก์ชันนี้แล้วจะรีเทิร์นค่าเป็น Date ซึ่ง Date ที่ได้จะเป็นเวลาที่ถูกตัดโดยกำหนดไว้ใน fmt ข้อมูลที่ได้จะเป็นข้อมูล Date เสมอแม้ว่าจะกำหนดตัวแปรเป็น DateTime ก็ตามแต่
สำหรับ fmt ที่ใส่ได้นั้นแสดงได้ตามด้านล่าง
Unit | Valid format parameters |
---|---|
Year | SYYYY, YYYY, YEAR, SYEAR, YYY, YY, Y |
ISO Year | IYYY, IY, I |
Quarter | Q |
Month | MONTH, MON, MM, RM |
Week | WW |
IW | IW |
W | W |
Day | DDD, DD, J |
Start day of the week | DAY, DY, D |
Hour | HH, HH12, HH24 |
Minute | MI |
เมื่อได้ format แล้วเรามาลองเรียกใช้งานกันดูครับ ตัวอย่างง่าย ๆ สำหรับการใช้งานฟังก์ชัน TRUNC ใน Oracle แสดงได้ดังนี้
select trunc(to_date('04-07-2016', 'DD-MM-YYYY'), 'YEAR') from dual;
เมื่อรันคำสั่งนี้จะได้ผลลัพธ์เป็น 01-JAN-16 ซึ่งเราใช้ฟอร์แมท YEAR เป็นฟอร์แมทของปีดังนั้นมันจะตัดทิ้งแล้วไปต้นปีนั่นก็คือวันที่ 1 มกราของปีนั้น ๆ คือ 1 JAN 2016
select trunc(to_date('04-07-2016', 'DD-MM-YYYY'), 'MONTH') from dual;
ตัวอย่างนี้เมื่อรันแล้วจะได้ผลลัพธ์เป็น 01-JUL-16 ซึ่งก็ได้ว่าฟอร์แมทที่เราใช้นั้นเป็น MONTH ซึ่งเป็นเดือน ดังนั้นมันจะกระโดดไปต้นเดือนแล้วตัดส่วนอื่นทิ้งนั่นก็คือต้นเดือนวันที่ 1 JUL 2016
สำหรับฟอร์แมทอื่น ๆ หรือตัวเลขอื่น ๆ ของไปเล่นกันดูครับ
ไม่มีความคิดเห็น:
แสดงความคิดเห็น