Skip to main content

TO_STRING

引入或更新于: v1.2.745

将值转换为 String 数据类型,或将 Date 值转换为特定的字符串格式。要在 Databend 中自定义日期和时间的格式,您可以使用格式说明符。这些说明符允许您定义日期和时间值的所需格式。有关支持的格式说明符的完整列表,请参阅 格式化日期和时间

语法

TO_STRING( '<expr>' )

TO_STRING( '<date>', '<format>' )

日期格式样式

Databend 支持两种日期格式样式,可以使用 date_format_style 设置进行选择:

  • MySQL (默认): 使用 MySQL 兼容的格式说明符,如 %Y%m%d 等。
  • Oracle: 使用格式说明符,如 YYYYMMDD 等,这些格式遵循许多数据库系统中常用的标准化格式。

要在格式样式之间切换,请使用 date_format_style 设置:

-- 设置 Oracle 样式日期格式
SETTINGS (date_format_style = 'Oracle') SELECT to_string('2024-04-05'::DATE, 'YYYY-MM-DD');

-- 设置 MySQL 日期格式样式 (默认)
SETTINGS (date_format_style = 'MySQL') SELECT to_string('2024-04-05'::DATE, '%Y-%m-%d');

Oracle 样式格式说明符

date_format_style 设置为 'Oracle' 时,支持以下格式说明符:

格式说明符描述示例输出 (对于 '2024-04-05 14:30:45.123456')
YYYY4 位年份2024
YY2 位年份24
MMMM完整月份名称April
MON缩写月份名称Apr
MM月份数字 (01-12)04
DD月份中的日期 (01-31)05
DY缩写日期名称Fri
HH24一天中的小时 (00-23)14
HH12一天中的小时 (01-12)02
AM/PM上午/下午指示符PM
MI分钟 (00-59)30
SS秒 (00-59)45
FF小数秒123456
UUUUISO 周编号年份2024
TZH:TZM带冒号的时区小时和分钟+08:00
TZH时区小时+08

别名

返回类型

String。

示例

SELECT
DATE_FORMAT('1.23'),
TO_STRING('1.23'),
TO_TEXT('1.23'),
TO_VARCHAR('1.23'),
JSON_TO_STRING('1.23');

┌─────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ date_format('1.23') │ to_string('1.23') │ to_text('1.23') │ to_varchar('1.23') │ json_to_string('1.23')
├─────────────────────┼───────────────────┼─────────────────┼────────────────────┼────────────────────────┤
1.231.231.231.231.23
└─────────────────────────────────────────────────────────────────────────────────────────────────────────┘

SELECT
DATE_FORMAT('["Cooking", "Reading"]' :: JSON),
TO_STRING('["Cooking", "Reading"]' :: JSON),
TO_TEXT('["Cooking", "Reading"]' :: JSON),
TO_VARCHAR('["Cooking", "Reading"]' :: JSON),
JSON_TO_STRING('["Cooking", "Reading"]' :: JSON);

┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ date_format('["cooking", "reading"]'::variant) │ to_string('["cooking", "reading"]'::variant) │ to_text('["cooking", "reading"]'::variant) │ to_varchar('["cooking", "reading"]'::variant) │ json_to_string('["cooking", "reading"]'::variant)
├────────────────────────────────────────────────┼──────────────────────────────────────────────┼────────────────────────────────────────────┼───────────────────────────────────────────────┼───────────────────────────────────────────────────┤
["Cooking","Reading"]["Cooking","Reading"]["Cooking","Reading"]["Cooking","Reading"]["Cooking","Reading"]
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

-- 使用一个参数时,该函数将输入转换为字符串而不验证其是否为日期
SELECT
DATE_FORMAT('20223-12-25'),
TO_STRING('20223-12-25'),
TO_TEXT('20223-12-25'),
TO_VARCHAR('20223-12-25'),
JSON_TO_STRING('20223-12-25');

┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ date_format('20223-12-25') │ to_string('20223-12-25') │ to_text('20223-12-25') │ to_varchar('20223-12-25') │ json_to_string('20223-12-25')
├────────────────────────────┼──────────────────────────┼────────────────────────┼───────────────────────────┼───────────────────────────────┤
20223-12-2520223-12-2520223-12-2520223-12-2520223-12-25
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

-- 使用 MySQL 格式样式 (默认)
SELECT
DATE_FORMAT('2022-12-25', '%m/%d/%Y'),
TO_STRING('2022-12-25', '%m/%d/%Y'),
TO_TEXT('2022-12-25', '%m/%d/%Y'),
TO_VARCHAR('2022-12-25', '%m/%d/%Y'),
JSON_TO_STRING('2022-12-25', '%m/%d/%Y');

┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ date_format('2022-12-25', '%m/%d/%Y') │ to_string('2022-12-25', '%m/%d/%Y') │ to_text('2022-12-25', '%m/%d/%Y') │ to_varchar('2022-12-25', '%m/%d/%Y') │ json_to_string('2022-12-25', '%m/%d/%Y')
├───────────────────────────────────────┼─────────────────────────────────────┼───────────────────────────────────┼──────────────────────────────────────┼──────────────────────────────────────────┤
12/25/202212/25/202212/25/202212/25/202212/25/2022
└───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

-- 使用 Oracle 格式样式 (与上面 MySQL 示例相同的数据)
SETTINGS (date_format_style = 'Oracle')
SELECT
TO_STRING('2022-12-25', 'MM/DD/YYYY'),
TO_CHAR('2022-12-25', 'MM/DD/YYYY'); -- 使用 TO_CHAR 别名

┌─────────────────────────────────────────────────────────────────┐
│ to_string('2022-12-25', 'MM/DD/YYYY') │ to_char('2022-12-25', 'MM/DD/YYYY')
├─────────────────────────────────────┼───────────────────────────────────┤
12/25/202212/25/2022

└─────────────────────────────────────────────────────────────────────────────────────────────────────────┘
Explore Databend Cloud for FREE
Low-cost
Fast Analytics
Easy Data Ingestion
Elastic Scaling
Try it today