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: 使用格式说明符,如
YYYY
、MM
、DD
等,这些格式遵循许多数据库系统中常用的标准化格式。
要在格式样式之间切换,请使用 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') |
---|---|---|
YYYY | 4 位年份 | 2024 |
YY | 2 位年份 | 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 |
UUUU | ISO 周编号年份 | 2024 |
TZH:TZM | 带冒号的时区小时和分钟 | +08:00 |
TZH | 时区小时 | +08 |
别名
- DATE_FORMAT
- JSON_TO_STRING
- TO_TEXT
- TO_VARCHAR
- TO_CHAR (Oracle 兼容性)
返回类型
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.23 │ 1.23 │ 1.23 │ 1.23 │ 1.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-25 │ 20223-12-25 │ 20223-12-25 │ 20223-12-25 │ 20223-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/2022 │ 12/25/2022 │ 12/25/2022 │ 12/25/2022 │ 12/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/2022 │ 12/25/2022 │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────┘