ClickHouce 常用日期函数小示例
下面是我個人覺得會比較常用的日期函數:
| now() | toYear() | toDayOfYear()? | addYears()??? | subtractYears()??? |
| today() | toMonth() | toDayOfMonth() | addMonths()?? | subtractMonths()?? |
| toUnixTimestamp() | toQuarter() | toDayOfWeek()? | addDays()???? | subtractDays()???? |
| toDateTime() | ? | ? | addWeeks()??? | subtractWeeks()??? |
| toDate()? | toHour()? | toYYYMM() | addQuarters() | subtractQuarters() |
| ? | toMinute()?? | toYYYMMDD() | addHours()????? | subtractHours()????? |
| dateDiff() | toSecond() | toYYYYMMDDhhmmss() | addMinutes()??? | subtractMinutes()??? |
| formatDateTime() | ? | ? | addSeconds() | subtractSeconds() |
可以看一下這些函數的用法示例:?
1、now()、today()、toUnixTimestamp()、toDateTime()、toDate()?
select now(); -- 獲取當前日期和時間 select today(); -- 獲取當前日期 select yesterday(),today() - 1 ; -- 獲取昨天的日期 select toUnixTimestamp(now()); -- 獲取當前時間的 Unix時間戳 select toDateTime('2021-01-13 25:12:13') as time ; -- 字符串類型 轉換 為 DateTime 類型 select toDate('2021-05-13 21:12:13') as date ; -- 字符串類型 轉換 為 Date 類型2、toYear()、toMonth()、toQuarter()? ?、toHour() 、toMinute() 、toSecond()
select toYear(toDate('2021-05-13')) as Year ; -- 年份 select toMonth(toDate('2021-05-13')) as Month ; -- 月份 select toQuarter(toDate('2021-05-13')) as Quarter; -- 季度select toHour(toDateTime('2021-05-13 21:12:13')) ; -- 獲取 小時(24小時制) select toMinute(toDateTime('2021-05-13 21:12:13')) ;-- 獲取 分鐘 select toSecond(toDateTime('2021-05-13 21:12:13')) ;-- 獲取秒數3、toDayOfYear() 、toDayOfMonth()、toDayOfWeek()
select toDayOfYear(toDate('2021-05-13')) as day_of_year; -- 該年的第 133 天 select toDayOfMonth(toDate('2021-05-13')) as day_of_month; -- 該月的 第 13 天 select toDayOfWeek(toDate('2021-05-13')) as num_of_week; -- 該周的 星期四4、toYYYMM()、toYYYMMDD()、toYYYYMMDDhhmmss()
select toYYYMM(now()); -- 轉換為包含年份和月份編號(YYYY * 100 + MM) select toYYYMMDD(now()); -- 轉換為包含年份和月份編號的UInt32類型的數字(YYYY * 10000 + MM * 100 + DD) select toYYYYMMDDhhmmss(now()); --將Date或DateTime轉換為包含年份和月份編號的UInt64類型的數字(YYYY * 10000000000 + MM * 100000000 + DD * 1000000 + hh * 10000 + mm * 100 + ss);5、addYears() 、addMonths()、addDays() ?、addWeeks() 、addQuarters()、addHours() ? 、addMinutes() 、addSeconds()
selecttoDate('2021-01-13') as date , addYears(toDate('2021-01-13'),1) as date_1 -- 加 一年 , addMonths(toDate('2021-01-13'),2) as date_2 -- 加 二個月 , addDays(toDate('2021-01-13'),3) as date_3 -- 加 三天 , addWeeks(toDate('2021-01-13'),1) as date_4 -- 加 一周 , addQuarters(toDate('2021-01-13'),2)as date_5; -- 加 二個季度selecttoDateTime('2021-01-13 21:12:13') as time , addHours(toDateTime('2021-01-13 21:12:13'),1) as time_1 -- 加 一個小時 (2021-01-13 22:12:13) , addMinutes(toDateTime('2021-01-13 21:12:13'),2)as time_2 -- 加 二分 (2021-01-13 21:14:13) , addSeconds(toDateTime('2021-01-13 21:12:13'),3)as time_3; -- 加 三個秒 (2021-01-13 21:12:16)6、subtractYears() 、subtractMonths()、subtractDays() 、subtractWeeks() 、subtractQuarters()、subtractHours() ?、subtractMinutes() 、subtractSeconds()
selecttoDate('2021-01-13') as date , subtractYears(toDate('2021-01-13'),1) as date_1 -- 減 一年 , subtractMonths(toDate('2021-01-13'),2) as date_2 -- 減 二個月 , subtractDays(toDate('2021-01-13'),3) as date_3 -- 減 三天 , subtractWeeks(toDate('2021-01-13'),1) as date_4 -- 減 一周 , subtractQuarters(toDate('2021-01-13'),2)as date_5; -- 減 二個季度selecttoDateTime('2021-01-13 21:12:13') as time , subtractHours(toDateTime('2021-01-13 21:12:13'),1) as time_1 -- 減 一個小時 (2021-01-13 20:12:13) , subtractMinutes(toDateTime('2021-01-13 21:12:13'),2)as time_2 -- 減 二分 (2021-01-13 21:10:13 , subtractSeconds(toDateTime('2021-01-13 21:12:13'),3)as time_3; -- 減 三個秒 (2021-01-13 21:12:10)7、dateDiff()? ?注:若想了解dateDiff() 的說明以及語法等,可點擊 此處 了解;
select dateDiff('day', toDateTime('2021-01-01 22:00:00'), toDateTime('2021-01-13 23:00:00'));8、formatDateTime()?? ?注:若想了解formatDateTime() 的說明以及語法等,可點擊 此處 了解;
select formatDateTime(toDate('2020-01-04'), '%D') as date;若哪里有錯的,望指正,謝謝。
參考:https://clickhouse.tech/docs/en/sql-reference/functions/date-time-functions
總結
以上是生活随笔為你收集整理的ClickHouce 常用日期函数小示例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 仿酒店入住日期选择器
- 下一篇: linux换系统源方法