Funkcja ROUND zwraca liczbę zaokrągloną do miejsc dziesiętnych określonych przez parametr funkcji. Jeśli funkcja zostanie wywołana bez parametru - liczba zostanie zaokrąglona do całości.
ROUND(DATE, n)
select category, value from ( select round( 0.4) "round( 0.4)" , round(.5) "round(.5)", round(0.44, 1) "round(0.44, 1)", round(0.45, 1) "round(0.45, 1)", round(45.45,-1) "round(45.45,-1)", round(44.44, -1) "round(44.44, -1)" from dual) unpivot (value for category in( "round( 0.4)", "round(.5)", "round(0.44, 1)", "round(0.45, 1)", "round(45.45,-1)", "round(44.44, -1)" )); / CATEGORY VALUE ---------------- ---------- round( 0.4) 0 round(.5) 1 round(0.44, 1) .4 round(0.45, 1) .5 round(45.45,-1) 50 round(44.44, -1) 40 6 rows selected.
Ale czy wiedzieliście, że funkcję ROUND można zastosować również do typu danych DATE?
Funkcja zwraca datę zaokrągloną do okresu podanego jako parametr w postaci formatu daty. Na przykład jeśli w parametrze podamy YEAR - funkcja zaokrągli nam albo do pierwszego dnia roku (gdy data będzie mniejsza niż lipiec) albo do ostatniego dnia roku (jeśli data będzie lipcowa lub wyższa).
Zobacz na przykłady!
ROUND(date, fmt) SELECT category, value FROM ( SELECT ROUND(DATE '2024-12-19', 'W') AS round_week_dec_19, ROUND(DATE '2024-12-18', 'W') AS round_week_dec_18, ROUND(DATE '2024-02-15', 'Q') AS round_quarter_feb_15, ROUND(DATE '2024-02-16', 'Q') AS round_quarter_feb_16, ROUND(DATE '2024-07-01', 'YEAR') AS round_year_jul_01, ROUND(DATE '2024-06-30', 'YEAR') AS round_year_jun_30, ROUND(DATE '2024-06-16', 'MONTH') AS round_month_jun_16, ROUND(DATE '2024-06-15', 'MONTH') AS round_month_jun_15 FROM dual ) UNPIVOT ( value FOR category IN ( round_week_dec_19, round_week_dec_18, round_quarter_feb_15, round_quarter_feb_16, round_year_jul_01, round_year_jun_30, round_month_jun_16, round_month_jun_15 ) ); CATEGORY VALUE -------------------- ---------- ROUND_WEEK_DEC_19 2024-12-22 ROUND_WEEK_DEC_18 2024-12-15 ROUND_QUARTER_FEB_15 2024-01-01 ROUND_QUARTER_FEB_16 2024-04-01 ROUND_YEAR_JUL_01 2025-01-01 ROUND_YEAR_JUN_30 2024-01-01 ROUND_MONTH_JUN_16 2024-07-01 ROUND_MONTH_JUN_15 2024-06-01 8 rows selected.
Komentarze
Prześlij komentarz