snowflake.snowpark.functions.trunc¶
- snowflake.snowpark.functions.trunc(e: Union[Column, str], scale: Union[Column, str, int, float] = 0) Column[source] (https://github.com/snowflakedb/snowpark-python/blob/v1.30.0/snowpark-python/src/snowflake/snowpark/functions.py#L5597-L5650)¶
- Rounds the input expression down to the nearest (or equal) integer closer to zero, or to the nearest equal or smaller value with the specified number of places after the decimal point. - Example: - >>> df = session.createDataFrame([-1.0, -0.9, -.5, -.2, 0.0, 0.2, 0.5, 0.9, 1.1, 3.14159], schema=["a"]) >>> df.select(trunc(col("a"))).collect() [Row(TRUNC("A", 0)=-1.0), Row(TRUNC("A", 0)=0.0), Row(TRUNC("A", 0)=0.0), Row(TRUNC("A", 0)=0.0), Row(TRUNC("A", 0)=0.0), Row(TRUNC("A", 0)=0.0), Row(TRUNC("A", 0)=0.0), Row(TRUNC("A", 0)=0.0), Row(TRUNC("A", 0)=1.0), Row(TRUNC("A", 0)=3.0)] >>> df = session.createDataFrame([-1.323, 4.567, 0.0123], schema=["a"]) >>> df.select(trunc(col("a"), lit(0))).collect() [Row(TRUNC("A", 0)=-1.0), Row(TRUNC("A", 0)=4.0), Row(TRUNC("A", 0)=0.0)] >>> df.select(trunc(col("a"), lit(1))).collect() [Row(TRUNC("A", 1)=-1.3), Row(TRUNC("A", 1)=4.5), Row(TRUNC("A", 1)=0.0)] >>> df.select(trunc(col("a"), lit(2))).collect() [Row(TRUNC("A", 2)=-1.32), Row(TRUNC("A", 2)=4.56), Row(TRUNC("A", 2)=0.01)] - Note that the function - truncis overloaded with- date_truncfor datetime types. It allows to round datetime objects.- Example: - >>> import datetime >>> df = session.createDataFrame([datetime.date(2022, 12, 25), datetime.date(2022, 1, 10), datetime.date(2022, 7, 7)], schema=["a"]) >>> df.select(trunc(col("a"), lit("QUARTER"))).collect() [Row(TRUNC("A", 'QUARTER')=datetime.date(2022, 10, 1)), Row(TRUNC("A", 'QUARTER')=datetime.date(2022, 1, 1)), Row(TRUNC("A", 'QUARTER')=datetime.date(2022, 7, 1))] >>> df = session.createDataFrame([datetime.datetime(2022, 12, 25, 13, 59, 38, 467)], schema=["a"]) >>> df.collect() [Row(A=datetime.datetime(2022, 12, 25, 13, 59, 38, 467))] >>> df.select(trunc(col("a"), lit("MINUTE"))).collect() [Row(TRUNC("A", 'MINUTE')=datetime.datetime(2022, 12, 25, 13, 59))]