ClickHouse常用转换函数整理_clickhouse字符串转数字

| toDayOfWeek() | 取日期或时间日期的星期(星期一为1,星期日为7)。 | toDayOfWeek(toDateTime(‘2018-12-11 11:12:13’)) toDayOfWeek(toDate(‘2018-12-11’)) | 返回 2返回 2 |
| toHour() | 取时间日期的小时 | toHour(toDateTime(‘2018-12-11 11:12:13’)) | 返回 11 |
| toMinute() | 取时间日期的分钟 | toMinute(toDateTime(‘2018-12-11 11:12:13’)) | 返回 12 |
| toSecond() | 取时间日期的秒 | toSecond(toDateTime(‘2018-12-11 11:12:13’)) | 返回 13 |
| toMonday() | 取时间日期最近的周一(返回日期) | toMonday(toDate(‘2018-12-11’)) toMonday(toDateTime(‘2018-12-11 11:12:13’)) | 返回 2018-12-10返回 2018-12-10 |
| toTime() | 将时间日期的日期固定到某一天,保留原始时间 | toTime(toDateTime(‘2018-12-11 11:12:13’)) | 返回 1970-01-02 11:12:13 |

1.2 时间或日期截取函数(toStartOf)—— 返回日期
函数 用途 举例 结果
toStartOfMonth() 取日期或时间日期的月份的第一天,返回日期 toStartOfMonth(toDateTime(‘2018-12-11 11:12:13’))toStartOfMonth(toDate(‘2018-12-11’)) 返回 2018-12-01返回 2018-12-01
toStartOfQuarter() 取日期或时间日期的季度的第一天,返回日期 toStartOfQuarter(toDateTime(‘2018-12-11 11:12:13’))toStartOfQuarter(toDate(‘2018-12-11’)) 返回 2018-10-01返回 2018-10-01
toStartOfYear() 取日期或时间日期的年份的第一天,返回日期 toStartOfYear(toDateTime(‘2018-12-11 11:12:13’))toStartOfYear(toDate(‘2018-12-11’)) 返回 2018-01-01返回 2018-01-01
toStartOfMinute() 截取时间日期到分钟(之后归零),返回日期 toStartOfMinute(toDateTime(‘2018-12-11 11:12:13’)) 返回 2018-12-11 11:12:00
toStartOfFiveMinute() 截取时间日期到最近的5的倍数分钟(之后归零),返回日期 toStartOfFiveMinute(toDateTime(‘2018-12-11 11:12:13’)) 返回 2018-12-11 11:10:00
toStartOfFifteenMinutes() 截取时间日期到最近的15的倍数分钟(之后归零),返回日期 toStartOfFifteenMinutes(toDateTime(‘2018-12-11 11:12:13’)) 返回 2018-12-11 11:00:00
toStartOfHour() 截取时间日期到小时(之后归零),返回日期 toStartOfHour(toDateTime(‘2018-12-11 11:12:13’)) 返回 2018-12-11 11:00:00
toStartOfDay() 截取时间日期到天(之后归零),返回日期 toStartOfDay(toDateTime(‘2018-12-11 11:12:13’)) 返回 2018-12-11 00:00:00
timeSlot() 将时间日期中,分钟大于等于30的归于30,分钟数小于30的归为00 timeSlot(toDateTime(‘2018-12-11 11:33:13’))timeSlot(toDateTime(‘2018-12-11 11:33:13’)) 返回 2018-12-11 11:00:00返回 2018-12-11 11:30:00
</
### ClickHouse常用字符串处理函数 #### 1. `length(s String)` 和 `charLength(s String)` `length` 返回给定字符串的字节长度,而 `charLength` 则返回字符数。对于多字节字符集来说,这两个函数的结果可能不同。 ```sql SELECT length('hello'), charLength('hello'); ``` [^1] #### 2. `lower(s String)` 和 `upper(s String)` 这些函数分别用于将整个字符串转换为小写或大写形式。 ```sql SELECT lower('HELLO WORLD'), upper('hello world'); ``` #### 3. `substring(s String, start Int[, length Int])` 此函数可以从指定位置提取子串。如果提供了第三个参数,则表示要截取的最大长度;如果不提供,默认直到字符串结尾。 ```sql SELECT substring('hello', 2), substring('hello', 2, 3); ``` #### 4. `replaceOne(s String, search String, replace_with String)` 及其变体 该系列函数可以用来替换首次出现的目标模式或者全部匹配项: - `replaceAll`: 替换所有匹配项; - `replaceRegexpAll`, `replaceRegexpOne`, `replaceRegexpN`. ```sql SELECT replaceOne('hello hello', 'l', 'L'), replaceAll('hello hello', 'l', 'L'); ``` #### 5. `concat(str1 String, str2 String...)` 连接两个或多个字符串成一个新的字符串。 ```sql SELECT concat('hello ', 'world!'); ``` #### 6. 正则表达式操作 (`match()`, `extract()`) 通过正则表达式来判断是否符合某种模式或是从中抽取特定部分的数据。 ```sql SELECT match('abc@example.com', '\\w+@\\w+.com$'), extract('abc@example.com', '(\\w+)@.*'); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值