- Release Notes
 - Introduction to CelerData Cloud Serverless
 -  Quick Start 
- Sign up for CelerData Cloud Serverless
 - A quick tour of the console
 - Connect to CelerData Cloud Serverless
 - Create an IAM integration
 - Create and assign a warehouse
 - Create an external catalog
 - Load data from cloud storage
 - Load data from Apache Kafka/Confluent Cloud
 - Try your first query
 - Invite new users
 - Design data access control policy
 
 - Warehouses
 -  Catalog, database, table, view, and MV 
- Overview of database objects
 - Catalog
 - Table types
 - Asynchronous materialized views
 
 - Data Loading
 - Data access control
 - Networking and private connectivity
 - Usage and Billing
 - Organization and Account
 - Integration
 - Query Acceleration
 -  Reference 
- AWS IAM policies
 -  Information Schema 
- Overview
 - be_bvars
 - be_cloud_native_compactions
 - be_compactions
 - character_sets
 - collations
 - column_privileges
 - columns
 - engines
 - events
 - global_variables
 - key_column_usage
 - load_tracking_logs
 - loads
 - materialized_views
 - partitions
 - pipe_files
 - pipes
 - referential_constraints
 - routines
 - schema_privileges
 - schemata
 - session_variables
 - statistics
 - table_constraints
 - table_privileges
 - tables
 - tables_config
 - task_runs
 - tasks
 - triggers
 - user_privileges
 - views
 
 - Data Types
 - System Metadatabase
 - Keywords
 -  SQL Statements 
- Account Management
 -  Data Definition 
- CREATE TABLE
 - ALTER TABLE
 - DROP CATALOG
 - CREATE TABLE LIKE
 - REFRESH EXTERNAL TABLE
 - RESTORE
 - SET CATALOG
 - DROP TABLE
 - RECOVER
 - USE
 - CREATE MATERIALIZED VIEW
 - DROP DATABASE
 - ALTER MATERIALIZED VIEW
 - DROP REPOSITORY
 - CANCEL RESTORE
 - DROP INDEX
 - DROP MATERIALIZED VIEW
 - CREATE DATABASE
 - CREATE TABLE AS SELECT
 - BACKUP
 - CANCEL BACKUP
 - CREATE REPOSITORY
 - CREATE INDEX
 
 -  Data Manipulation 
- INSERT
 - SHOW CREATE DATABASE
 - SHOW BACKUP
 - SHOW ALTER MATERIALIZED VIEW
 - SHOW CATALOGS
 - SHOW CREATE MATERIALIZED VIEW
 - SELECT
 - SHOW ALTER
 - SHOW MATERIALIZED VIEW
 - RESUME ROUTINE LOAD
 - ALTER ROUTINE LOAD
 - SHOW TABLES
 - STREAM LOAD
 - SHOW PARTITIONS
 - CANCEL REFRESH MATERIALIZED VIEW
 - SHOW CREATE CATALOG
 - SHOW ROUTINE LOAD TASK
 - SHOW RESTORE
 - CREATE ROUTINE LOAD
 - STOP ROUTINE LOAD
 - SHOW DATABASES
 - BROKER LOAD
 - SHOW ROUTINE LOAD
 - PAUSE ROUTINE LOAD
 - SHOW SNAPSHOT
 - SHOW CREATE TABLE
 - CANCEL LOAD
 - REFRESH MATERIALIZED VIEW
 - SHOW REPOSITORIES
 - SHOW LOAD
 
 - Administration
 - DESCRIBE
 
 -  SQL Functions 
- Function List
 -  String Functions 
- CONCAT
 - HEX
 - LOWER
 - SPLIT
 - LPAD
 - SUBSTRING
 - PARSE_URL
 - INSTR
 - REPEAT
 - LCASE
 - REPLACE
 - HEX_DECODE_BINARY
 - RPAD
 - SPLIT_PART
 - STRCMP
 - SPACE
 - CHARACTER_LENGTH
 - URL_ENCODE
 - APPEND_TAILING_CHAR_IF_ABSENT
 - LTRIM
 - HEX_DECODE_STRING
 - URL_DECODE
 - LEFT
 - STARTS_WITH
 - CONCAT
 - GROUP_CONCAT
 - STR_TO_MAP
 - STRLEFT
 - STRRIGHT
 - MONEY_FORMAT
 - RIGHT
 - SUBSTRING_INDEX
 - UCASE
 - TRIM
 - FIND_IN_SET
 - RTRIM
 - ASCII
 - UPPER
 - REVERSE
 - LENGTH
 - UNHEX
 - ENDS_WITH
 - CHAR_LENGTH
 - NULL_OR_EMPTY
 - LOCATE
 - CHAR
 
 - Predicate Functions
 - Map Functions
 - Binary Functions
 - Geospatial Functions
 - Lambda Expression
 - Utility Functions
 -  Bitmap Functions 
- BITMAP_SUBSET_LIMIT
 - TO_BITMAP
 - BITMAP_AGG
 - BITMAP_FROM_STRING
 - BITMAP_OR
 - BITMAP_REMOVE
 - BITMAP_AND
 - BITMAP_TO_BASE64
 - BITMAP_MIN
 - BITMAP_CONTAINS
 - SUB_BITMAP
 - BITMAP_UNION
 - BITMAP_COUNT
 - BITMAP_UNION_INT
 - BITMAP_XOR
 - BITMAP_UNION_COUNT
 - BITMAP_HAS_ANY
 - BITMAP_INTERSECT
 - BITMAP_AND_NOT
 - BITMAP_TO_STRING
 - BITMAP_HASH
 - INTERSECT_COUNT
 - BITMAP_EMPTY
 - BITMAP_MAX
 - BASE64_TO_ARRAY
 - BITMAP_TO_ARRAY
 
 - Struct Functions
 -  Aggregate Functions 
- RETENTION
 - MI
 - MULTI_DISTINCT_SUM
 - WINDOW_FUNNEL
 - STDDEV_SAMP
 - GROUPING_ID
 - HLL_HASH
 - AVG
 - HLL_UNION_AGG
 - COUNT
 - BITMAP
 - HLL_EMPTY
 - SUM
 - MAX_BY
 - PERCENTILE_CONT
 - COVAR_POP
 - PERCENTILE_APPROX
 - HLL_RAW_AGG
 - STDDEV
 - CORR
 - COVAR_SAMP
 - MIN_BY
 - MAX
 - VAR_SAMP
 - STD
 - HLL_UNION
 - APPROX_COUNT_DISTINCT
 - MULTI_DISTINCT_COUNT
 - VARIANCE
 - ANY_VALUE
 - COUNT_IF
 - GROUPING
 - PERCENTILE_DISC
 
 -  Array Functions 
- ARRAY_CUM_SUM
 - ARRAY_MAX
 - ARRAY_LENGTH
 - ARRAY_REMOVE
 - UNNEST
 - ARRAY_SLICE
 - ALL_MATCH
 - ARRAY_CONCAT
 - ARRAY_SORT
 - ARRAY_POSITION
 - ARRAY_DIFFERENCE
 - ARRAY_CONTAINS
 - ARRAY_JOIN
 - ARRAY_INTERSECT
 - CARDINALITY
 - ARRAY_CONTAINS_ALL
 - ARRAYS_OVERLAP
 - ARRAY_MIN
 - ARRAY_MAP
 - ELEMENT_AT
 - ARRAY_APPEND
 - ARRAY_SORTBY
 - ARRAY_TO_BITMAP
 - ARRAY_GENERATE
 - ARRAY_AVG
 - ARRAY_FILTER
 - ANY_MATCH
 - REVERSE
 - ARRAY_AGG
 - ARRAY_DISTINCT
 - ARRAY_SUM
 
 - Condition Functions
 - Math Functions
 -  Date and Time Functions 
- DAYNAME
 - MINUTE
 - FROM_UNIXTIME
 - HOUR
 - MONTHNAME
 - MONTHS_ADD
 - ADD_MONTHS
 - DATE_SUB
 - PREVIOUS_DAY
 - TO_TERA_DATA
 - MINUTES_SUB
 - WEEKS_ADD
 - HOURS_DIFF
 - UNIX_TIMESTAMP
 - DAY
 - DATE_SLICE
 - DATE
 - CURTIME
 - SECONDS_SUB
 - MONTH
 - WEEK
 - TO_DATE
 - TIMEDIFF
 - MONTHS_DIFF
 - STR_TO_JODATIME
 - WEEK_ISO
 - MICROSECONDS_SUB
 - TIME_SLICE
 - MAKEDATE
 - DATE_TRUNC
 - JODATIME
 - DAYOFWEEK
 - YEARS_SUB
 - TIMESTAMP_ADD
 - HOURS_SUB
 - STR2DATE
 - TIMESTAMP
 - FROM_DAYS
 - WEEK_OF_YEAR
 - YEAR
 - TIMESTAMP_DIFF
 - TO_TERA_TIMESTAMP
 - DAYOFMONTH
 - DAYOFYEAR
 - DATE_FORMAT
 - MONTHS_SUB
 - NEXT_DAY
 - MINUTES_DIFF
 - DATA_ADD
 - MINUTES_ADD
 - CURDATE
 - DAY_OF_WEEK_ISO
 - CURRENt_TIMESTAMP
 - STR_TO_DATE
 - LAST_DAY
 - WEEKS_SUB
 - TO_DAYS
 - DATEDIFF
 - NOW
 - TO_ISO8601
 - TIME_TO_SEC
 - QUARTER
 - SECONDS_DIFF
 - UTC_TIMESTAMP
 - DATA_DIFF
 - SECONDS_ADD
 - ADDDATE
 - WEEKSDIFF
 - CONVERT_TZ
 - MICROSECONDS_ADD
 - SECOND
 - YEARS_DIFF
 - YEARS_ADD
 - HOURS_ADD
 - DAYS_SUB
 - DAYS_DIFF
 
 - Cryptographic Functions
 - Percentile Functions
 - Bit Functions
 - JSON Functions
 - Hash Functions
 - Scalar Functions
 - Table Functions
 
 
 
date_slice
Description
Converts a given time into the beginning or end of a time interval based on the specified time granularity.
Syntax
DATE date_slice(DATE dt, INTERVAL N type[, boundary])Parameters
dt: the time to convert, DATE.INTERVAL N type: the time granularity, for example,interval 5 day.Nis the length of time interval. It must be an INT value.typeis the unit, which can be YEAR, QUARTER, MONTH, WEEK, DAY. Iftypeis set to HOUR, MINUTE, or SECOND for a DATE value, an error is returned.
boundary: optional. It is used to specify whether to return the beginning (FLOOR) or end (CEIL) of the time interval. Valid values: FLOOR, CEIL. If this parameter is not specified,FLOORis the default.
Return value
Returns a value of the DATE type.
Usage notes
The time interval starts from A.D. 0001-01-01 00:00:00.
Examples
Example 1: Convert a given time to the beginning of a 5-year time interval without specifying the boundary parameter.
select date_slice('2022-04-26', interval 5 year);
+--------------------------------------------------+
| date_slice('2022-04-26', INTERVAL 5 year, floor) |
+--------------------------------------------------+
| 2021-01-01                                       |
+--------------------------------------------------+Example 2: Convert a given time to the end of a 5-day time interval.
select date_slice('0001-01-07', interval 5 day, CEIL);
+------------------------------------------------+
| date_slice('0001-01-07', INTERVAL 5 day, ceil) |
+------------------------------------------------+
| 0001-01-11                                     |
+------------------------------------------------+The following examples are provided based on the test_all_type_select table.
select * from test_all_type_select order by id_int;
+------------+---------------------+--------+
| id_date    | id_datetime         | id_int |
+------------+---------------------+--------+
| 2052-12-26 | 1691-12-23 04:01:09 |      0 |
| 2168-08-05 | 2169-12-18 15:44:31 |      1 |
| 1737-02-06 | 1840-11-23 13:09:50 |      2 |
| 2245-10-01 | 1751-03-21 00:19:04 |      3 |
| 1889-10-27 | 1861-09-12 13:28:18 |      4 |
+------------+---------------------+--------+
5 rows in set (0.06 sec)Example 3: Convert a given DATE value to the beginning of a 5-second time interval.
select date_slice(id_date, interval 5 second, FLOOR)
from test_all_type_select
order by id_int;
ERROR 1064 (HY000): can't use date_slice for date with time(hour/minute/second)An error is returned because the system cannot find the second part of a DATE value.
Example 4: Convert a given DATE value to the beginning of a 5-day time interval.
select date_slice(id_date, interval 5 day, FLOOR)
from test_all_type_select
order by id_int;
+--------------------------------------------+
| date_slice(id_date, INTERVAL 5 day, floor) |
+--------------------------------------------+
| 2052-12-24                                 |
| 2168-08-03                                 |
| 1737-02-04                                 |
| 2245-09-29                                 |
| 1889-10-25                                 |
+--------------------------------------------+
5 rows in set (0.14 sec)Example 5: Convert a given DATE value to the end of a 5-day time interval.
select date_slice(id_date, interval 5 day, CEIL)
from test_all_type_select
order by id_int;
+-------------------------------------------+
| date_slice(id_date, INTERVAL 5 day, ceil) |
+-------------------------------------------+
| 2052-12-29                                |
| 2168-08-08                                |
| 1737-02-09                                |
| 2245-10-04                                |
| 1889-10-30                                |
+-------------------------------------------+
5 rows in set (0.17 sec)