注:所有的时间日期函数都可以在第二个可选参数中接受时区参数。示例:Asia / Yekaterinburg。在这种情况下,它们使用指定的时区而不是本地(默认)时区。仅支持与UTC相差一整小时的时区

localhost :) select toDateTime(146600280) AS time,toDateTime(146600280,'Asia/Yekaterinburg') AS time_asia,toDateTime(146600280,'US/Samoa') AS time_us,toDate(146600280) AS date_local,toDate(146600280,'Asia/Yekaterinburg') AS date_asia,toDate(146600280,'US/Samoa') AS date_us;SELECTtoDateTime(146600280) AS time,toDateTime(146600280, 'Asia/Yekaterinburg') AS time_asia,toDateTime(146600280, 'US/Samoa') AS time_us,toDate(146600280) AS date_local,toDate(146600280, 'Asia/Yekaterinburg') AS date_asia,toDate(146600280, 'US/Samoa') AS date_usQuery id: 72b99150-a308-4495-afdd-2f123e0e877c┌────────────────time─┬───────────time_asia─┬─────────────time_us─┬─date_local─┬──date_asia─┬────date_us─┐
│ 1974-08-25 02:18:00 │ 1974-08-24 23:18:00 │ 1974-08-24 07:18:00 │ 1974-08-25 │ 1974-08-24 │ 1974-08-24 │
└─────────────────────┴─────────────────────┴─────────────────────┴────────────┴────────────┴────────────┘1 rows in set. Elapsed: 0.004 sec.

toDateTime() yyyy-MM-dd HH:mm:ss时间函数

toDateTime()时间函数返回的时间格式为yyyy-MM-dd HH:mm:ss

toDateTime(x)

toDateTime(x)参数x可以是字符串类型也可以是数字类型。

localhost :) select toDateTime('1466002800') AS time;SELECT toDateTime('1466002800') AS timeQuery id: 8b7e7816-d382-4140-be1b-a83b2741b0d2┌────────────────time─┐
│ 2016-06-15 23:00:00 │
└─────────────────────┘1 rows in set. Elapsed: 0.006 sec.localhost :) select toDateTime(1466002800) AS time;SELECT toDateTime(1466002800) AS timeQuery id: 56718b03-3796-4c82-8705-9c8d05404be3┌────────────────time─┐
│ 2016-06-15 23:00:00 │
└─────────────────────┘1 rows in set. Elapsed: 0.002 sec.

同样,toDateTime(x)x的格式可以是时间戳也可以是时间格式的字符串。

localhost :) select toDateTime('2016-06-15 23:00:00') AS time, toUnixTimestamp(time) as unixTimestamp;SELECTtoDateTime('2016-06-15 23:00:00') AS time,toUnixTimestamp(time) AS unixTimestampQuery id: c3870bf8-2b1c-4754-bcf8-e86a5c4a410c┌────────────────time─┬─unixTimestamp─┐
│ 2016-06-15 23:00:00 │    1466002800 │
└─────────────────────┴───────────────┘1 rows in set. Elapsed: 0.003 sec.

toUnixTimestamp()

toUnixTimestamp()时间戳函数中的参数类型可以是String类型可以是DateTime类型

localhost :) select toDateTime('2016-06-15 23:00:00') AS time, toUnixTimestamp('2016-06-15 23:00:00') as unixTimestamp,toUnixTimestamp(time) as unixTimestamp1;SELECTtoDateTime('2016-06-15 23:00:00') AS time,toUnixTimestamp('2016-06-15 23:00:00') AS unixTimestamp,toUnixTimestamp(time) AS unixTimestamp1Query id: c947aed8-e63c-45d7-bd5d-e2c9fbd5c4cb┌────────────────time─┬─unixTimestamp─┬─unixTimestamp1─┐
│ 2016-06-15 23:00:00 │    1466002800 │     1466002800 │
└─────────────────────┴───────────────┴────────────────┘1 rows in set. Elapsed: 0.003 sec.

toDate() yyyy-MM-dd日期函数

toDate()日期函数返回的日期格式yyyy-MM-dd。

localhost :) select toDate(146600280) AS date_local,toDate(146600280,'Asia/Yekaterinburg') AS date_asia,toDate(146600280,'US/Samoa') AS date_us;SELECTtoDate(146600280) AS date_local,toDate(146600280, 'Asia/Yekaterinburg') AS date_asia,toDate(146600280, 'US/Samoa') AS date_usQuery id: 1704f699-fb96-484b-9b87-d5cdf4215fdc┌─date_local─┬──date_asia─┬────date_us─┐
│ 1974-08-25 │ 1974-08-24 │ 1974-08-24 │
└────────────┴────────────┴────────────┘1 rows in set. Elapsed: 0.003 sec.

toDate()日期函数参数类型为String类型或时间戳类型DateTime类型。

localhost :) select toDateTime('2016-06-15 23:00:00') AS time, toDate(time) AS date,toDate('2016-06-15 23:00:00') AS date1,toDate(1466002800) AS date2;SELECTtoDateTime('2016-06-15 23:00:00') AS time,toDate(time) AS date,toDate('2016-06-15 23:00:00') AS date1,toDate(1466002800) AS date2Query id: ac06c8d0-94bf-4ac0-8efb-b722ec70cb15┌────────────────time─┬───────date─┬──────date1─┬──────date2─┐
│ 2016-06-15 23:00:00 │ 2016-06-15 │ 2016-06-15 │ 2016-06-15 │
└─────────────────────┴────────────┴────────────┴────────────┘1 rows in set. Elapsed: 0.003 sec.

toTime() 返回时间格式yyyy-MM-dd HH:mm:ss

toTime()虽然返回的时间格式是yyyy-MM-dd HH:mm:ss,但是只有HH:mm:ss部分是准确的,但是yyyy-MM-dd虽然不准确但是是固定的日期。

localhost :) SELECT toDateTime('2019-07-30 10:10:10') AS time,toTime(time) AS date_time,now() AS now,toTime(now) AS date_time1;SELECTtoDateTime('2019-07-30 10:10:10') AS time,toTime(time) AS date_time,now() AS now,toTime(now) AS date_time1Query id: 9f3472dc-acda-4922-ad2f-29fd61309337┌────────────────time─┬───────────date_time─┬─────────────────now─┬──────────date_time1─┐
│ 2019-07-30 10:10:10 │ 1970-01-02 10:10:10 │ 2020-12-10 15:39:53 │ 1970-01-02 15:39:53 │
└─────────────────────┴─────────────────────┴─────────────────────┴─────────────────────┘

toTimeZone()将时间或日期和时间转换为指定的时区的时间

将时间或日期和时间转换为指定的时区。时区是Date / DateTime类型的属性。表字段或结果集的列的内部值(秒数)不会更改,列的类型会更改,并且其字符串表示形式也会相应更改。

localhost :) SELECT
:-]     toDateTime('2019-01-01 00:00:00', 'UTC') AS time_utc,
:-]     toTypeName(time_utc) AS type_utc,
:-]     toInt32(time_utc) AS int32utc,
:-]     toTimeZone(time_utc, 'Asia/Yekaterinburg') AS time_yekat,
:-]     toTypeName(time_yekat) AS type_yekat,
:-]     toInt32(time_yekat) AS int32yekat,
:-]     toTimeZone(time_utc, 'US/Samoa') AS time_samoa,
:-]     toTypeName(time_samoa) AS type_samoa,
:-]     toInt32(time_samoa) AS int32samoa
:-] FORMAT Vertical;SELECTtoDateTime('2019-01-01 00:00:00', 'UTC') AS time_utc,toTypeName(time_utc) AS type_utc,toInt32(time_utc) AS int32utc,toTimeZone(time_utc, 'Asia/Yekaterinburg') AS time_yekat,toTypeName(time_yekat) AS type_yekat,toInt32(time_yekat) AS int32yekat,toTimeZone(time_utc, 'US/Samoa') AS time_samoa,toTypeName(time_samoa) AS type_samoa,toInt32(time_samoa) AS int32samoa
FORMAT VerticalQuery id: 50109e98-f402-4b12-b155-8ff3097d601eRow 1:
──────
time_utc:   2019-01-01 00:00:00
type_utc:   DateTime('UTC')
int32utc:   1546300800
time_yekat: 2019-01-01 05:00:00
type_yekat: DateTime('Asia/Yekaterinburg')
int32yekat: 1546300800
time_samoa: 2018-12-31 13:00:00
type_samoa: DateTime('US/Samoa')
int32samoa: 15463008001 rows in set. Elapsed: 0.012 sec.

toTimeZone(time_utc, 'Asia/Yekaterinburg')DateTime('UTC')类型更改为DateTime('Asia/Yekaterinburg')。值(Unixtimestamp)1546300800保持不变,但是字符串表示形式(toString()函数的结果)从更改time_utc: 2019-01-01 00:00:00time_yekat: 2019-01-01 05:00:00

取当前日期和时间

today()取当前日期,等价于CURRENT_DATE(),时间格式yyyy-MM-dd
now()取当前时间,等价于CURRENT_TIMSTAMP(),时间格式yyyy-MM-dd HH:mm:ss

localhost :) select toDateTime(now()) AS time, toDate(time) AS date,toDate(now()) AS date1,toDate(now()) AS date2,toTime(now()) AS time1, toDateTime(today()) AS time2,today() AS today,now() AS now;SELECTtoDateTime(now()) AS time,toDate(time) AS date,toDate(now()) AS date1,toDate(now()) AS date2,toTime(now()) AS time1,toDateTime(today()) AS time2,today() AS today,now() AS nowQuery id: 861cecaa-f7b1-4895-936a-88939bf0ad0c┌────────────────time─┬───────date─┬──────date1─┬──────date2─┬───────────────time1─┬───────────────time2─┬──────today─┬─────────────────now─┐
│ 2020-12-10 15:30:25 │ 2020-12-10 │ 2020-12-10 │ 2020-12-10 │ 1970-01-02 15:30:25 │ 2020-12-10 00:00:00 │ 2020-12-10 │ 2020-12-10 15:30:25 │
└─────────────────────┴────────────┴────────────┴────────────┴─────────────────────┴─────────────────────┴────────────┴─────────────────────┘1 rows in set. Elapsed: 0.003 sec.

取昨日日期

yesterday()返回昨天的日期,日期格式:yyyy-MM-dd

localhost :) select yesterday() ;SELECT yesterday()Query id: 0c8e1d69-4414-4604-92e7-7f112f6fed6e┌─yesterday()─┐
│  2020-12-09 │
└─────────────┘1 rows in set. Elapsed: 0.002 sec.

获取当前时间中的年、季度、月、日、时、分、秒。

toYear(now())获取当前时间所属的年份,
toMonth(now())获取当前时间所属的月份,
toQuarter(now())获取当前时间的月份所属的季度,
toHour(now())获取当前时间的小时部分,
toMinute(now())获取当前时间的分钟部分,
toSecond(now())获取当前时间的秒钟部分。

localhost :) SELECT toDateTime(now()) AS time,toYear(time) AS get_year,toMonth(time) AS get_month,toQuarter(time) AS get_quarter,toHour(time) AS get_hour,toMinute(time) AS get_minute,toSecond(time) AS get_second;SELECTtoDateTime(now()) AS time,toYear(time) AS get_year,toMonth(time) AS get_month,toQuarter(time) AS get_quarter,toHour(time) AS get_hour,toMinute(time) AS get_minute,toSecond(time) AS get_secondQuery id: 20112499-1352-40b8-8137-12f57377aff3┌────────────────time─┬─year─┬─month─┬─quarter─┬─hour─┬─minute─┬─second─┐
│ 2020-12-10 15:51:15 │ 2020 │    12 │       4 │   15 │     51 │     15 │
└─────────────────────┴──────┴───────┴─────────┴──────┴────────┴────────┘1 rows in set. Elapsed: 0.003 sec.

toMonday() 获取当周周一

toMonday()参数类型可以为Date类型或者DateTime类型

localhost :) select toMonday(today())
:-] ;SELECT toMonday(today())Query id: 880b17e1-0385-4153-a7be-fdaed8590854┌─toMonday(today())─┐
│        2020-12-07 │
└───────────────────┘1 rows in set. Elapsed: 0.003 sec.localhost :) select toMonday(now()) ;SELECT toMonday(now())Query id: cea12cda-412f-4544-a47b-98480f9d7cd2┌─toMonday(now())─┐
│      2020-12-07 │
└─────────────────┘1 rows in set. Elapsed: 0.008 sec.

toDayOfYear()取一年中的第几天

toDayOfYear()参数类型可以是Date类型或者DateTime类型。

localhost :) select toDayOfYear(now());SELECT toDayOfYear(now())Query id: d25747ba-3064-40aa-856b-37b375a46346┌─toDayOfYear(now())─┐
│                345 │
└────────────────────┘1 rows in set. Elapsed: 0.003 sec.localhost :) select toDayOfYear(today());SELECT toDayOfYear(today())Query id: 5ca6244e-6d72-4ee1-8cb0-8fcb4172d639┌─toDayOfYear(today())─┐
│                  345 │
└──────────────────────┘1 rows in set. Elapsed: 0.003 sec.localhost :) select toDayOfYear(toDate('2020-12-10'));SELECT toDayOfYear(toDate('2020-12-10'))Query id: 9ce38274-727d-4f5a-acc6-8640751bd372┌─toDayOfYear(toDate('2020-12-10'))─┐
│                               345 │
└───────────────────────────────────┘1 rows in set. Elapsed: 0.002 sec.localhost :) select toDayOfYear(toDateTime('2020-12-10 16:54:00'));SELECT toDayOfYear(toDateTime('2020-12-10 16:54:00'))Query id: ff4a5e09-2d4b-412a-afbb-8b87831ff6bf┌─toDayOfYear(toDateTime('2020-12-10 16:54:00'))─┐
│                                            345 │
└────────────────────────────────────────────────┘1 rows in set. Elapsed: 0.003 sec.

toDayOfMonth()取一月中的第几天

toDayOfYear()参数类型可以是Date类型或者DateTime类型。

localhost :) select toDayOfMonth(now()) ;SELECT toDayOfMonth(now())Query id: c36a2f95-b6a1-498b-b5cd-efaeadcefdcc┌─toDayOfMonth(now())─┐
│                  10 │
└─────────────────────┘1 rows in set. Elapsed: 0.002 sec.localhost :) select toDayOfMonth(today()) ;SELECT toDayOfMonth(today())Query id: 53bad0fb-0ccc-4093-bfae-c91e53147757┌─toDayOfMonth(today())─┐
│                    10 │
└───────────────────────┘1 rows in set. Elapsed: 0.002 sec.localhost :) select toDayOfMonth(toDate('2020-12-10')) ;SELECT toDayOfMonth(toDate('2020-12-10'))Query id: e9491fa8-991d-4456-bba6-97228b84315f┌─toDayOfMonth(toDate('2020-12-10'))─┐
│                                 10 │
└────────────────────────────────────┘1 rows in set. Elapsed: 0.003 sec.localhost :) select toDayOfMonth(toDate('2020-12-10 17:09:33')) ;SELECT toDayOfMonth(toDate('2020-12-10 17:09:33'))Query id: d699c562-43dc-442b-932d-79dc4236d4b2┌─toDayOfMonth(toDate('2020-12-10 17:09:33'))─┐
│                                          10 │
└─────────────────────────────────────────────┘1 rows in set. Elapsed: 0.003 sec.

toDayOfWeek()取一周中第几天

toDayOfWeek()参数类型可以是Date类型或者DateTime类型。

localhost :) select toDayOfWeek(now());SELECT toDayOfWeek(now())Query id: e1250f95-66b7-415f-a6b5-e2cd57932c0f┌─toDayOfWeek(now())─┐
│                  4 │
└────────────────────┘1 rows in set. Elapsed: 0.002 sec.localhost :) select toDayOfWeek(today());SELECT toDayOfWeek(today())Query id: ff6f8235-ff0d-40c4-a8e7-2307a440dfb6┌─toDayOfWeek(today())─┐
│                    4 │
└──────────────────────┘1 rows in set. Elapsed: 0.002 sec.localhost :) select toDayOfWeek(toDate('2020-12-10'));SELECT toDayOfWeek(toDate('2020-12-10'))Query id: 3574b27b-6a7b-4cc7-b95f-f355df90f8a5┌─toDayOfWeek(toDate('2020-12-10'))─┐
│                                 4 │
└───────────────────────────────────┘1 rows in set. Elapsed: 0.003 sec.localhost :) select toDayOfWeek(toDateTime('2020-12-10 16:56:00'));SELECT toDayOfWeek(toDateTime('2020-12-10 16:56:00'))Query id: 9298bd31-e662-42a5-b7c9-824ee2feee65┌─toDayOfWeek(toDateTime('2020-12-10 16:56:00'))─┐
│                                              4 │
└────────────────────────────────────────────────┘1 rows in set. Elapsed: 0.003 sec.localhost :) select toDayOfWeek(toDateTime(toUnixTimestamp(now())));SELECT toDayOfWeek(toDateTime(toUnixTimestamp(now())))Query id: 31647de2-4d76-45dd-82c8-eadcc5b4ade4┌─toDayOfWeek(toDateTime(toUnixTimestamp(now())))─┐
│                                               4 │
└─────────────────────────────────────────────────┘1 rows in set. Elapsed: 0.003 sec.

toStartOfYear()取一年中的第一天

toStartOfYear()参数类型可以是Date类型或者DateTime类型。

localhost :) select toStartOfYear(toDate('2020-12-10'));SELECT toStartOfYear(toDate('2020-12-10'))Query id: b401b5fd-d76f-4c0f-801a-05d99601aded┌─toStartOfYear(toDate('2020-12-10'))─┐
│                          2020-01-01 │
└─────────────────────────────────────┘1 rows in set. Elapsed: 0.003 sec.localhost :) select toStartOfYear(toDateTime('2020-12-10 17:01:00'));SELECT toStartOfYear(toDateTime('2020-12-10 17:01:00'))Query id: 9225d0c8-8daf-4f4b-83b0-547ff42b6319┌─toStartOfYear(toDateTime('2020-12-10 17:01:00'))─┐
│                                       2020-01-01 │
└──────────────────────────────────────────────────┘1 rows in set. Elapsed: 0.002 sec.localhost :) select toStartOfYear(now());SELECT toStartOfYear(now())Query id: d3f8fdad-e85c-4a59-803f-ba4c1d290dcc┌─toStartOfYear(now())─┐
│           2020-01-01 │
└──────────────────────┘1 rows in set. Elapsed: 0.002 sec.localhost :) select toStartOfYear(today());SELECT toStartOfYear(today())Query id: 4194635a-c926-4bce-86e1-e58c7df240a7┌─toStartOfYear(today())─┐
│             2020-01-01 │
└────────────────────────┘1 rows in set. Elapsed: 0.002 sec.

toStartOfMonth() 取某月中的第一天

toStartOfMonth()参数类型可以是Date类型或者DateTime类型。

localhost :) select toStartOfMonth(now());SELECT toStartOfMonth(now())Query id: 39f6a74a-4525-4c91-aaf1-f5d9741026b7┌─toStartOfMonth(now())─┐
│            2020-12-01 │
└───────────────────────┘1 rows in set. Elapsed: 0.003 sec.localhost :) select toStartOfMonth(today());SELECT toStartOfMonth(today())Query id: 93746a67-28ec-46de-8a12-341ad91c3a44┌─toStartOfMonth(today())─┐
│              2020-12-01 │
└─────────────────────────┘1 rows in set. Elapsed: 0.002 sec.localhost :) select toStartOfMonth(toDate('2020-12-10'));SELECT toStartOfMonth(toDate('2020-12-10'))Query id: efa05914-e669-4e2e-842b-c65d86f9e13d┌─toStartOfMonth(toDate('2020-12-10'))─┐
│                           2020-12-01 │
└──────────────────────────────────────┘1 rows in set. Elapsed: 0.002 sec.localhost :) select toStartOfMonth(toDateTime('2020-12-10 17:07:33'));SELECT toStartOfMonth(toDateTime('2020-12-10 17:07:33'))Query id: 895199c5-61bb-4257-be33-f4656e1d4a75┌─toStartOfMonth(toDateTime('2020-12-10 17:07:33'))─┐
│                                        2020-12-01 │
└───────────────────────────────────────────────────┘1 rows in set. Elapsed: 0.003 sec.

toStartOfQuarter() 取某季度的第一天

toStartOfQuarter()参数类型可以是Date类型或者DateTime类型。

localhost :) select toStartOfQuarter(now()) ;SELECT toStartOfQuarter(now())Query id: 2f75e2d2-cc10-4591-af8d-bf5af9eab2d3┌─toStartOfQuarter(now())─┐
│              2020-10-01 │
└─────────────────────────┘1 rows in set. Elapsed: 0.003 sec.localhost :) select toStartOfQuarter(today()) ;SELECT toStartOfQuarter(today())Query id: 3dc8b254-98ea-4335-8127-d95713656254┌─toStartOfQuarter(today())─┐
│                2020-10-01 │
└───────────────────────────┘1 rows in set. Elapsed: 0.005 sec.localhost :) select toStartOfQuarter(toDateTime('2020-12-10 17:09:33')) ;SELECT toStartOfQuarter(toDateTime('2020-12-10 17:09:33'))Query id: f3a3479a-e40d-4fd6-b8f9-2116b6b8da5c┌─toStartOfQuarter(toDateTime('2020-12-10 17:09:33'))─┐
│                                          2020-10-01 │
└─────────────────────────────────────────────────────┘1 rows in set. Elapsed: 0.003 sec.localhost :) select toStartOfQuarter(toDate('2020-12-10')) ;SELECT toStartOfQuarter(toDate('2020-12-10'))Query id: 97f09e5d-32fa-4679-919c-b1513925deb8┌─toStartOfQuarter(toDate('2020-12-10'))─┐
│                             2020-10-01 │
└────────────────────────────────────────┘1 rows in set. Elapsed: 0.002 sec.

toStartOfDay()当前日期中的开始时间

toStartOfDay()参数类型可以是Date类型或者DateTime类型。

localhost :) select  toStartOfDay(now());SELECT toStartOfDay(now())Query id: dce51410-e3da-4c1d-8d68-a601c5db51e4┌─toStartOfDay(now())─┐
│ 2020-12-10 00:00:00 │
└─────────────────────┘1 rows in set. Elapsed: 0.005 sec.localhost :) select  toStartOfDay(today());SELECT toStartOfDay(today())Query id: 77787394-530e-443e-aad9-271c18d291fc┌─toStartOfDay(today())─┐
│   2020-12-10 00:00:00 │
└───────────────────────┘1 rows in set. Elapsed: 0.002 sec.localhost :) select  toStartOfDay(toDate('2020-12-10'));SELECT toStartOfDay(toDate('2020-12-10'))Query id: 3ec981f6-20c0-47cd-8e4e-fd78ea073915┌─toStartOfDay(toDate('2020-12-10'))─┐
│                2020-12-10 00:00:00 │
└────────────────────────────────────┘1 rows in set. Elapsed: 0.002 sec.localhost :) select  toStartOfDay(toDate('2020-12-10 17:20:00'));SELECT toStartOfDay(toDate('2020-12-10 17:20:00'))Query id: 68c3b65f-e404-4122-acb1-5545a4ff3edc┌─toStartOfDay(toDate('2020-12-10 17:20:00'))─┐
│                         2020-12-10 00:00:00 │
└─────────────────────────────────────────────┘1 rows in set. Elapsed: 0.003 sec.

toStartOfHour()当前日期中的开始小时

toStartOfHour()参数的类型是DateTime类型,返回的时间格式yyyy-MM-dd HH:mm:ss,其中yyyy-MM-dd为准确值,HH:mm:ssHH为准确值,其他的都为整点值。

localhost :) select toStartOfHour(now());SELECT toStartOfHour(now())Query id: af4a5fab-a325-4e29-b225-e6ec20f16fc4┌─toStartOfHour(now())─┐
│  2020-12-10 17:00:00 │
└──────────────────────┘1 rows in set. Elapsed: 0.003 sec.localhost :) select toStartOfHour(toDateTime(now()));SELECT toStartOfHour(toDateTime(now()))Query id: 74259daf-eb96-44a0-a31d-58101eda2989┌─toStartOfHour(toDateTime(now()))─┐
│              2020-12-10 17:00:00 │
└──────────────────────────────────┘1 rows in set. Elapsed: 0.002 sec.

toStartOfMinute()当前日期中的开始分钟

toStartOfMinute()参数的类型是DateTime类型,返回的时间格式yyyy-MM-dd HH:mm:ss,其中yyyy-MM-dd为准确值,HH:mm:ssHH:mm为准确值,其他的都为整点值。

localhost :) select toStartOfMinute(now());SELECT toStartOfMinute(now())Query id: ccc34b47-e09f-48d3-aafa-e56fa5ec862a┌─toStartOfMinute(now())─┐
│    2020-12-10 17:31:00 │
└────────────────────────┘1 rows in set. Elapsed: 0.090 sec.localhost :) select toStartOfMinute(toDateTime(now()));SELECT toStartOfMinute(toDateTime(now()))Query id: 5becf923-6e6b-497a-aa55-a6e88d82030f┌─toStartOfMinute(toDateTime(now()))─┐
│                2020-12-10 17:32:00 │
└────────────────────────────────────┘1 rows in set. Elapsed: 0.003 sec.

其他类似函数也是如此:
toStartOfFiveMinute()当前时间的上一个五分钟开始时间
toStartOfTenMinutes()当前时间的上一个十分钟开始时间
toStartOfFifteenMinutes()当前时间的上一个十五分钟开始时间
toStartOfInterval(time_or_data, INTERVAL x unit [, time_zone])自定义函数,参数类型为Date类型或者DateTime类型

localhost :) select toStartOfInterval(today(),INTERVAL 1 month);SELECT toStartOfInterval(today(), toIntervalMonth(1))Query id: f8b38ca7-9a5e-4eed-b8aa-c447437ba6e2┌─toStartOfInterval(today(), toIntervalMonth(1))─┐
│                                     2020-12-01 │
└────────────────────────────────────────────────┘1 rows in set. Elapsed: 0.003 sec.localhost :) select toStartOfInterval(now(),INTERVAL 1 month);SELECT toStartOfInterval(now(), toIntervalMonth(1))Query id: f0533908-1e47-4821-9a67-d90a191a8eb4┌─toStartOfInterval(now(), toIntervalMonth(1))─┐
│                                   2020-12-01 │
└──────────────────────────────────────────────┘1 rows in set. Elapsed: 0.003 sec.

toRelativeYearNum() 从0000-00-00 00:00:00开始计算 相差多少个年头

toRelativeYearNum()参数类型可以是Date类型或者DateTime类型。返回当前年份,格式yyyy

localhost :) select toRelativeYearNum(toDate('2020-12-10'));SELECT toRelativeYearNum(toDate('2020-12-10'))Query id: 7238e8b0-f6db-4317-9afc-70ebb141d448┌─toRelativeYearNum(toDate('2020-12-10'))─┐
│                                    2020 │
└─────────────────────────────────────────┘1 rows in set. Elapsed: 0.002 sec.localhost :) select toRelativeYearNum(toDateTime('2020-12-10 17:40:45'));SELECT toRelativeYearNum(toDateTime('2020-12-10 17:40:45'))Query id: 4e69f7bc-442e-4354-b22d-e6ec8a9e3bed┌─toRelativeYearNum(toDateTime('2020-12-10 17:40:45'))─┐
│                                                 2020 │
└──────────────────────────────────────────────────────┘1 rows in set. Elapsed: 0.003 sec.localhost :) select toRelativeYearNum(now());SELECT toRelativeYearNum(now())Query id: 63f3026d-9938-411c-90b7-d882cd792262┌─toRelativeYearNum(now())─┐
│                     2020 │
└──────────────────────────┘1 rows in set. Elapsed: 0.003 sec.localhost :) select toRelativeYearNum(today());SELECT toRelativeYearNum(today())Query id: 86fe845d-bbaa-478a-9ee2-57c38bb46b46┌─toRelativeYearNum(today())─┐
│                       2020 │
└────────────────────────────┘1 rows in set. Elapsed: 0.003 sec.

toRelativeQuarterNum() 从0000-00-00 00:00:00 开始计算 相差多少个季度

toRelativeQuarterNum()参数类型可以是Date类型或者DateTime类型。返回当前第几季度。

localhost :) select toRelativeQuarterNum(today());SELECT toRelativeQuarterNum(today())Query id: eadbf9c1-0ee8-42e1-9c94-1b092b88be39┌─toRelativeQuarterNum(today())─┐
│                          8083 │
└───────────────────────────────┘1 rows in set. Elapsed: 0.006 sec.localhost :) select toRelativeQuarterNum(now());SELECT toRelativeQuarterNum(now())Query id: 3ca3f4b1-18a5-4893-84f0-7f4e39b97db8┌─toRelativeQuarterNum(now())─┐
│                        8083 │
└─────────────────────────────┘1 rows in set. Elapsed: 0.006 sec.localhost :) select toRelativeQuarterNum(toDate('2020-09-01'));SELECT toRelativeQuarterNum(toDate('2020-09-01'))Query id: 6a5ab5c4-3364-4316-85f9-628be11cf661┌─toRelativeQuarterNum(toDate('2020-09-01'))─┐
│                                       8082 │
└────────────────────────────────────────────┘1 rows in set. Elapsed: 0.004 sec.localhost :) select toRelativeQuarterNum(toDateTime('2020-09-01 00:00:00'));SELECT toRelativeQuarterNum(toDateTime('2020-09-01 00:00:00'))Query id: 846d15c4-8156-41e5-84cd-9575a4b9e701┌─toRelativeQuarterNum(toDateTime('2020-09-01 00:00:00'))─┐
│                                                    8082 │
└─────────────────────────────────────────────────────────┘1 rows in set. Elapsed: 0.003 sec.

其他的都类似:
toRelativeWeekNum从0000-00-00 00:00:00 开始计算 相差多少个周
toRelativeDayNum 从0000-00-00 00:00:00 开始计算 相差多少天
toRelativeHourNum 从0000-00-00 00:00:00 开始计算 相差多少小时
toRelativeMinuteNum 从0000-00-00 00:00:00 开始计算 相差多少个分钟
toRelativeSecondNum 从0000-00-00 00:00:00 开始计算 相差多少个秒钟

formatDateTime(now(),’%Y-%m-%d’) 时间格式化函数

formatDateTime(now(),'%Y-%m-%d')时间格式化函数,参数有两个,第一参数类型可为DateTime类型或者Date类型。第二个参数为指定输出的时间格式。时间格式参数参见表1-1.

localhost :) select formatDateTime(now(),'%Y-%m-%d %H:%M:%S') ;SELECT formatDateTime(now(), '%Y-%m-%d %H:%M:%S')Query id: 799167d1-c092-46ce-976e-d93c991fae25┌─formatDateTime(now(), '%Y-%m-%d %H:%M:%S')─┐
│ 2020-12-10 17:51:00                        │
└────────────────────────────────────────────┘1 rows in set. Elapsed: 0.002 sec.localhost :) select formatDateTime(today(),'%Y-%m-%d %H:%M:%S') ;SELECT formatDateTime(today(), '%Y-%m-%d %H:%M:%S')Query id: 5194a2a0-2c1f-407f-97ad-d72c12038afd┌─formatDateTime(today(), '%Y-%m-%d %H:%M:%S')─┐
│ 2020-12-10 00:00:00                          │
└──────────────────────────────────────────────┘1 rows in set. Elapsed: 0.003 sec.localhost :) select formatDateTime(toDate('2020-12-10'),'%Y-%m-%d %H:%M:%S') ;SELECT formatDateTime(toDate('2020-12-10'), '%Y-%m-%d %H:%M:%S')Query id: 3df938d9-e368-4853-bb62-2677a7b07ee7┌─formatDateTime(toDate('2020-12-10'), '%Y-%m-%d %H:%M:%S')─┐
│ 2020-12-10 00:00:00                                       │
└───────────────────────────────────────────────────────────┘1 rows in set. Elapsed: 0.003 sec.localhost :) select formatDateTime(toDateTime('2020-12-10 17:32:02'),'%Y-%m-%d %H:%M:%S') ;SELECT formatDateTime(toDateTime('2020-12-10 17:32:02'), '%Y-%m-%d %H:%M:%S')Query id: dae037aa-39b1-4136-9068-69647e3cf014┌─formatDateTime(toDateTime('2020-12-10 17:32:02'), '%Y-%m-%d %H:%M:%S')─┐
│ 2020-12-10 17:32:02                                                    │
└────────────────────────────────────────────────────────────────────────┘1 rows in set. Elapsed: 0.003 sec.

表 1-1:时间符号含义

修饰符 描述 示例
%C 年除以100并截断为整数(00-99) 20
%d 月中的一天,零填充(01-31) 02
%D 短MM/DD/YY日期,相当于%m/%d/%y 01/02/2018
%e 月中的一天,空格填充(1-31) 2
%F 短YYYY-MM-DD日期,相当于%Y-%m-%d 2018-01-02
%H 24小时格式(00-23) 22
%I 小时12h格式(01-12) 10
%j 一年(001-366) 002
%m 月份为十进制数(01-12) 01
%M 分钟(00-59) 33
%n 换行符(")
%p AM或PM指定 PM
%R 24小时HH:MM时间,相当于%H:%M 22:33
%S 第二(00-59) 44
%t 水平制表符(’)
%T ISO8601时间格式(HH:MM:SS),相当于%H:%M:%S 22:33:44
%u ISO8601平日as编号,星期一为1(1-7) 2
%V ISO8601周编号(01-53) 01
%w 周日为十进制数,周日为0(0-6) 2
%y 年份,最后两位数字(00-99) 18
%Y 2018
%% %符号 %

toYYYYMM()、toYYYYMMDD()、toYYYYMMDDhhmmss()

toYYYYMM()、toYYYYMMDD()、toYYYYMMDDhhmmss()参数的类型必须为Date类型和DateTime类型,分区别返回时间格式为对应函数名格式的字符串。

localhost :) select toYYYYMM(now());SELECT toYYYYMM(now())Query id: ab08587f-80ba-4320-aba4-2e60410c2fab┌─toYYYYMM(now())─┐
│          202012 │
└─────────────────┘1 rows in set. Elapsed: 0.002 sec.localhost :) select toYYYYMM(today());SELECT toYYYYMM(today())Query id: 193978a2-bc06-459f-b6ee-b5215820f38f┌─toYYYYMM(today())─┐
│            202012 │
└───────────────────┘1 rows in set. Elapsed: 0.002 sec.localhost :) select toYYYYMM(toDateTime('2020-12-10 11:11:11'));SELECT toYYYYMM(toDateTime('2020-12-10 11:11:11'))Query id: cad39080-1ae7-467f-9f86-c89723614602┌─toYYYYMM(toDateTime('2020-12-10 11:11:11'))─┐
│                                      202012 │
└─────────────────────────────────────────────┘1 rows in set. Elapsed: 0.002 sec.localhost :) select toYYYYMM(toDate('2020-12-10'));SELECT toYYYYMM(toDate('2020-12-10'))Query id: 2a36e8e2-aaf0-4d38-b7aa-9b779f6390a1┌─toYYYYMM(toDate('2020-12-10'))─┐
│                         202012 │
└────────────────────────────────┘1 rows in set. Elapsed: 0.003 sec.

toWeek(date,mode)返回当年的星期数

toWeek(date,mode)此函数返回日期或日期时间的星期数。toWeek()的两个参数形式使您可以指定星期是从星期日还是星期一开始,以及返回值应在0到53还是从1到53的范围内。如果省略了mode参数,则默认mode为0,toISOWeek()是等效于的兼容性函数toWeek(date,3)

Mode First day of week 范围 第一周是***第一周
0 Sunday 0-53 第一周是今年第一个有星期天的星期
1 Monday 0-53 第一周是今年第一个有4天或更多天数的星期
2 Sunday 1-53 第一周是今年第一个有星期天的星期
3 Monday 1-53 第一周是今年第一个有4天或更多天数的星期
4 Sunday 0-53 第一周是今年第一个有4天或更多天数的星期
5 Monday 0-53 第一周是今年第一个有星期一的星期
6 Sunday 1-53 第一周是今年第一个有4天或更多天数的星期
7 Monday 1-53 第一周是今年第一个有星期一的星期
8 Sunday 1-53 第一周是包含1月1日的第一周
9 Monday 1-53 第一周是包含1月1日的第一周
localhost :) select toWeek(today(),1);SELECT toWeek(today(), 1)Query id: c7ce3824-a44c-48ba-a2e1-9c949707a1ae┌─toWeek(today(), 1)─┐
│                 50 │
└────────────────────┘1 rows in set. Elapsed: 0.003 sec.

toISOYear() 将日期转换为ISO年号

toISOYear()将带有时间的日期或日期转换为包含ISO年号的UInt16号。
参数类型为Date类型和DateTime类型

localhost :) select toISOYear(now()) ;SELECT toISOYear(now())Query id: c41ab220-8562-4af5-9877-921dd859b627┌─toISOYear(now())─┐
│             2020 │
└──────────────────┘1 rows in set. Elapsed: 0.003 sec.localhost :) select toISOYear(today()) ;SELECT toISOYear(today())Query id: 49a603df-430d-4b87-af5d-2b8294655aa9┌─toISOYear(today())─┐
│               2020 │
└────────────────────┘1 rows in set. Elapsed: 0.003 sec.

toISOWeek() 将日期转化为ISO周号

toISOWeek()将带有时间的日期转换为包含ISO周号的UInt8数字,参数类型为Date类型和DateTime类型,获取周数最好使用这个函数。

localhost :) select toISOWeek(today());SELECT toISOWeek(today())Query id: dd0cf006-971f-48df-af2a-87f6d11c40ae┌─toISOWeek(today())─┐
│                 50 │
└────────────────────┘1 rows in set. Elapsed: 0.011 sec.localhost :) select toISOWeek(now());SELECT toISOWeek(now())Query id: 4cab3cc2-f353-4ef2-bd85-3cae09534385┌─toISOWeek(now())─┐
│               50 │
└──────────────────┘1 rows in set. Elapsed: 0.002 sec.

对于表示“今年有4天或更多天”的模式值,周的编号按照ISO 8601:1988:
如果包含1月1日的那一周在新年有4天或更多的日子,它就是第1周。
否则,它是前一年的最后一周,下一周是第一周。对于含义为“contains January 1”的模式值,包含January 1的星期就是第1周。新年一周有多少天并不重要,即使只有一天也没关系。

toYearWeek(date [,mode])

第二个参数可以忽略,返回日期的年和周。结果中的年份可能与该年份的第一周和最后一周的date参数中的年份不同。模式参数的工作方式与toWeek()的模式参数完全相同。对于单参数语法,使用模式值0。toISOYear()是等效于的兼容性函数intDiv(toYearWeek(date,3),100)。参数类型必须为Date类型或者DateTime类型。

localhost :) select toDate('2020-12-28') AS date,toYearWeek(date,1) AS week1,toYearWeek(date,2) AS week2,toYearWeek(date,3) AS week3,toYearWeek(date,4) AS week4,toYearWeek(date,5) AS week5,toYearWeek(date,6) AS week6,toYearWeek(date,7) AS week7,toYearWeek(date,8) AS week8,toYearWeek(date,9) AS week9 FORMAT Vertical;;SELECTtoDate('2020-12-28') AS date,toYearWeek(date, 1) AS week1,toYearWeek(date, 2) AS week2,toYearWeek(date, 3) AS week3,toYearWeek(date, 4) AS week4,toYearWeek(date, 5) AS week5,toYearWeek(date, 6) AS week6,toYearWeek(date, 7) AS week7,toYearWeek(date, 8) AS week8,toYearWeek(date, 9) AS week9
FORMAT VerticalQuery id: 81e405bd-e399-452e-a225-96ab85a528ccRow 1:
──────
date:  2020-12-28
week1: 202053
week2: 202052
week3: 202053
week4: 202053
week5: 202052
week6: 202053
week7: 202052
week8: 202101
week9: 2021011 rows in set. Elapsed: 0.003 sec.localhost :) select toDate('2020-12-28') AS date,toYearWeek(date) AS week,toYearWeek(date,0) AS week0;SELECTtoDate('2020-12-28') AS date,toYearWeek(date) AS week,toYearWeek(date, 0) AS week0Query id: 0b813c84-d55a-4c9e-9493-9d93a463ca9f┌───────date─┬───week─┬──week0─┐
│ 2020-12-28 │ 202052 │ 202052 │
└────────────┴────────┴────────┘1 rows in set. Elapsed: 0.003 sec.

date_trunc(unit, value[, timezone])

date_trunc(unit, value[, timezone])将日期和时间数据截断为日期的指定部分。

句法
date_trunc(unit, value[, timezone])
别名:
dateTrunc。
参量
unit—日期的一部分。字串。
可能的值:secondminutehourdayweekmonthquarteryear
value- 日期和时间。参数类型必须为DateTime或DateTime64。
timezone—返回值的时区名称(可选)。如果未指定,则该函数使用value参数的时区。字串。
返回值
值,被截断为日期的指定部分。
类型:Datetime。
localhost :) select dateTrunc('second',now()) ;SELECT dateTrunc('second', now())Query id: 7a3365e7-4692-46aa-900d-7de5f19f2a30┌─dateTrunc('second', now())─┐
│        2020-12-11 12:17:18 │
└────────────────────────────┘1 rows in set. Elapsed: 0.002 sec.localhost :) select dateTrunc('minute',now()) ;SELECT dateTrunc('minute', now())Query id: 81ddb7d9-d85d-4bab-aabb-6ca3aaa52462┌─dateTrunc('minute', now())─┐
│        2020-12-11 12:17:00 │
└────────────────────────────┘1 rows in set. Elapsed: 0.003 sec.localhost :) select dateTrunc('hour',now()) ;SELECT dateTrunc('hour', now())Query id: 73711b09-7900-46d9-99a6-8e26cc62a678┌─dateTrunc('hour', now())─┐
│      2020-12-11 12:00:00 │
└──────────────────────────┘1 rows in set. Elapsed: 0.006 sec.localhost :) select dateTrunc('day',now()) ;SELECT dateTrunc('day', now())Query id: 02da6ac2-bc52-49a3-9f3f-e53f3f728a3b┌─dateTrunc('day', now())─┐
│     2020-12-11 00:00:00 │
└─────────────────────────┘1 rows in set. Elapsed: 0.002 sec.localhost :) select dateTrunc('month',now()) ;SELECT dateTrunc('month', now())Query id: c302abe5-2eae-4bea-95e2-5e6b103390cd┌─dateTrunc('month', now())─┐
│                2020-12-01 │
└───────────────────────────┘1 rows in set. Elapsed: 0.002 sec.localhost :) select dateTrunc('year',now()) ;SELECT dateTrunc('year', now())Query id: 03da5a68-ce27-4561-ae6d-09fa159f3853┌─dateTrunc('year', now())─┐
│               2020-01-01 │
└──────────────────────────┘1 rows in set. Elapsed: 0.003 sec.

使用第三个参数timezone指定分区:

localhost :) select dateTrunc('hour',now()) ;SELECT dateTrunc('hour', now())Query id: 68d4c07d-647a-45bb-82c9-36d2f8093b8a┌─dateTrunc('hour', now())─┐
│      2020-12-11 12:00:00 │
└──────────────────────────┘1 rows in set. Elapsed: 0.002 sec.localhost :) select dateTrunc('hour',now(),'Asia/Shanghai') ;SELECT dateTrunc('hour', now(), 'Asia/Shanghai')Query id: 31c06b35-dd25-4b7d-b61f-1706a2889c07┌─dateTrunc('hour', now(), 'Asia/Shanghai')─┐
│                       2020-12-11 12:00:00 │
└───────────────────────────────────────────┘1 rows in set. Elapsed: 0.003 sec.localhost :) select dateTrunc('hour',now(),'Asia/Yekaterinburg') ;SELECT dateTrunc('hour', now(), 'Asia/Yekaterinburg')Query id: 4adf4ae3-ba80-4f96-9412-1c0e59aac338┌─dateTrunc('hour', now(), 'Asia/Yekaterinburg')─┐
│                            2020-12-11 09:00:00 │
└────────────────────────────────────────────────┘1 rows in set. Elapsed: 0.002 sec.localhost :) select dateTrunc('hour',now(),'US/Samoa') ;SELECT dateTrunc('hour', now(), 'US/Samoa')Query id: ee2a5294-84a8-4516-9164-9f231d408db3┌─dateTrunc('hour', now(), 'US/Samoa')─┐
│                  2020-12-10 17:00:00 │
└──────────────────────────────────────┘1 rows in set. Elapsed: 0.005 sec.localhost :) select dateTrunc('hour',now(),'Asia/Tokyo') ;SELECT dateTrunc('hour', now(), 'Asia/Tokyo')Query id: 58e30d6b-a2e0-45b1-811a-09b3f9757de9┌─dateTrunc('hour', now(), 'Asia/Tokyo')─┐
│                    2020-12-11 13:00:00 │
└────────────────────────────────────────┘1 rows in set. Elapsed: 0.036 sec.localhost :) select dateTrunc('hour',now(),'Europe/Moscow') ;SELECT dateTrunc('hour', now(), 'Europe/Moscow')Query id: 366b978a-e746-4dc5-823f-8484c448cb7f┌─dateTrunc('hour', now(), 'Europe/Moscow')─┐
│                       2020-12-11 07:00:00 │
└───────────────────────────────────────────┘1 rows in set. Elapsed: 0.009 sec.localhost :) select date_trunc('hour',now(),'Asia/Shanghai') AS date_trunc;SELECT date_trunc('hour', now(), 'Asia/Shanghai') AS date_truncQuery id: 7b1f0474-fba6-4a47-8f7d-c884814f4365┌──────────date_trunc─┐
│ 2020-12-11 14:00:00 │
└─────────────────────┘1 rows in set. Elapsed: 0.003 sec.

dateDiff()

dateDiff()返回两个DateDateTime值之间的差。

句法
dateDiff('unit', startdate, enddate, [timezone])
参量
  • unit—时间单位,表示返回值。字串。
    Supported values: second, minute, hour, day, week, month, quarter, year.
  • startdate—要比较的第一个时间值。Date或DateTime。
  • enddate—要比较的第二时间值。Date或DateTime。
  • timezone—可选参数。如果指定,则同时应用于startdate和enddate。如果未指定,则使用startdate和的时区enddate。如果它们不相同,则结果不确定。该参数同时作用于startdate和enddate,使用该参数时应该保证此2值为同时区时间。
返回值
之间的差异startdate和enddate所表达unit。
类型:int。
localhost :) SELECT now();SELECT now()Query id: 7252750a-ab5c-4a2a-b72e-1c241734dab2┌───────────────now()─┐
│ 2020-12-11 14:15:08 │
└─────────────────────┘1 rows in set. Elapsed: 0.005 sec.localhost :) SELECT dateDiff('hour',yesterday(), today());SELECT dateDiff('hour', yesterday(), today())Query id: 6a007b5a-7bed-4100-b595-af19267e4fc4┌─dateDiff('hour', yesterday(), today())─┐
│                                     24 │
└────────────────────────────────────────┘1 rows in set. Elapsed: 0.010 sec.localhost :) SELECT dateDiff('hour',yesterday(), now());SELECT dateDiff('hour', yesterday(), now())Query id: 739fb39e-e543-4838-aaab-a0638b123fc5┌─dateDiff('hour', yesterday(), now())─┐
│                                   38 │
└──────────────────────────────────────┘1 rows in set. Elapsed: 0.002 sec.
计算两个时刻在不同时间单位下的差值
localhost :) SELECT
:-]     toDateTime('2019-11-09 15:08:57', 'Asia/Shanghai') as datetime1,
:-]     toDateTime(now(), 'Asia/Shanghai') as datetime2,
:-]     dateDiff('year', datetime1, datetime2) as diffYears,--返回两个时间相差多少年
:-]     dateDiff('month', datetime1, datetime2) as diffMonths,--返回两个时间相差多少月
:-]     dateDiff('week', datetime1, datetime2) as diffWeek,--返回两个时间相差多少周
:-]     dateDiff('day', datetime1, datetime2) as diffDays,--返回两个时间相差多少天
:-]     dateDiff('hour', datetime1, datetime2) as diffHours,--返回两个时间相差多少小时
:-]     dateDiff('minute', datetime1, datetime2) as diffMinutes,--返回两个时间相差多少分钟
:-]     dateDiff('second', datetime1, datetime2) as diffSeconds;--返回两个时间相差多少秒钟SELECTtoDateTime('2019-11-09 15:08:57', 'Asia/Shanghai') AS datetime1,toDateTime(now(), 'Asia/Shanghai') AS datetime2,dateDiff('year', datetime1, datetime2) AS diffYears,dateDiff('month', datetime1, datetime2) AS diffMonths,dateDiff('week', datetime1, datetime2) AS diffWeek,dateDiff('day', datetime1, datetime2) AS diffDays,dateDiff('hour', datetime1, datetime2) AS diffHours,dateDiff('minute', datetime1, datetime2) AS diffMinutes,dateDiff('second', datetime1, datetime2) AS diffSecondsQuery id: 7281dfa9-8813-46d0-a1bb-1b52b6b29d1b┌───────────datetime1─┬───────────datetime2─┬─diffYears─┬─diffMonths─┬─diffWeek─┬─diffDays─┬─diffHours─┬─diffMinutes─┬─diffSeconds─┐
│ 2019-11-09 15:08:57 │ 2020-12-11 14:23:40 │         1 │         13 │       57 │      398 │      9551 │      573075 │    34384483 │
└─────────────────────┴─────────────────────┴───────────┴────────────┴──────────┴──────────┴───────────┴─────────────┴─────────────┘1 rows in set. Elapsed: 0.011 sec.localhost :) SELECT
:-]     dateDiff('year', now(), addYears(now(), 1)) as diffYears,--返回两个时间相差多少年份
:-]     dateDiff('month', now(), addMonths(now(), 2)) as diffMonths,--返回两个时间相差多少月份
:-]     dateDiff('week', now(), addWeeks(now(), 3)) as diffWeek,--返回两个时间相差多少周
:-]     dateDiff('day', now(), addDays(now(), 3)) as diffDays,--返回两个时间相差多少天
:-]     dateDiff('hour', now(), addHours(now(), 3)) as diffHours,--返回两个时间相差多少小时
:-]     dateDiff('minute', now(), addMinutes(now(), 30)) as diffMinutes,--返回两个时间相差多少分钟
:-]     dateDiff('second', now(), addSeconds(now(), 35)) as diffSeconds;--返回两个时间相差多少秒钟SELECTdateDiff('year', now(), addYears(now(), 1)) AS diffYears,dateDiff('month', now(), addMonths(now(), 2)) AS diffMonths,dateDiff('week', now(), addWeeks(now(), 3)) AS diffWeek,dateDiff('day', now(), addDays(now(), 3)) AS diffDays,dateDiff('hour', now(), addHours(now(), 3)) AS diffHours,dateDiff('minute', now(), addMinutes(now(), 30)) AS diffMinutes,dateDiff('second', now(), addSeconds(now(), 35)) AS diffSecondsQuery id: bec02fef-a81d-4665-a17b-2d600b3703b5┌─diffYears─┬─diffMonths─┬─diffWeek─┬─diffDays─┬─diffHours─┬─diffMinutes─┬─diffSeconds─┐
│         1 │          2 │        3 │        3 │         3 │          30 │          35 │
└───────────┴────────────┴──────────┴──────────┴───────────┴─────────────┴─────────────┘1 rows in set. Elapsed: 0.004 sec.

timeSlot(datetime[,timezone])将时间向前取整半小时。

第一个参数类型为DateTime类型,第二个参数可以不写为时区

localhost :) select timeSlot(now());SELECT timeSlot(now())Query id: ba5de766-8bf0-42ed-9057-ce92e50fe4eb┌─────timeSlot(now())─┐
│ 2020-12-11 14:30:00 │
└─────────────────────┘1 rows in set. Elapsed: 0.006 sec.localhost :) select timeSlot(toDateTime('2020-12-10 12:59:59'));SELECT timeSlot(toDateTime('2020-12-10 12:59:59'))Query id: fef691c3-bf7b-479b-88de-909aa4553111┌─timeSlot(toDateTime('2020-12-10 12:59:59'))─┐
│                         2020-12-10 12:30:00 │
└─────────────────────────────────────────────┘1 rows in set. Elapsed: 0.003 sec.localhost :) select timeSlot(toDateTime('2020-12-10 12:29:59'));SELECT timeSlot(toDateTime('2020-12-10 12:29:59'))Query id: fbb9f68e-9e96-421a-954c-da5edd9402c9┌─timeSlot(toDateTime('2020-12-10 12:29:59'))─┐
│                         2020-12-10 12:00:00 │
└─────────────────────────────────────────────┘1 rows in set. Elapsed: 0.003 sec.localhost :) select timeSlot(toDateTime('2020-12-10 12:29:59'),'Asia/Shanghai');SELECT timeSlot(toDateTime('2020-12-10 12:29:59'), 'Asia/Shanghai')Query id: c22487b2-21f0-4d86-ac87-b92a7456b947┌─timeSlot(toDateTime('2020-12-10 12:29:59'), 'Asia/Shanghai')─┐
│                                          2020-12-10 12:00:00 │
└──────────────────────────────────────────────────────────────┘1 rows in set. Elapsed: 0.003 sec.

addYears(date/datetime,+/-number), addMonths(date/datetime,+/-number), addWeeks(date/datetime,+/-number), addDays(date/datetime,+/-number), addHours(date/datetime,+/-number), addMinutes(date/datetime,+/-number), addSeconds(date/datetime,+/-number), addQuarters(date/datetime,+/-number)

addYears(date/datetime,+/-number)加(+)、减(-)number年,返回date/datetime类型数据由第一个参数date/datetime决定。
addMonths(date/datetime,+/-number)加(+)、减(-)number月,返回date/datetime类型数据由第一个参数date/datetime决定。
addWeeks(date/datetime,+/-number)加(+)、减(-)number周,返回date/datetime类型数据由第一个参数date/datetime决定。
addDays(date/datetime,+/-number)加(+)、减(-)number天,返回date/datetime类型数据由第一个参数date/datetime决定。等价于date_add()
addHours(date/datetime,+/-number)加(+)、减(-)number小时,返回date/datetime类型数据由第一个参数date/datetime决定。
addMinutes(date/datetime,+/-number)加(+)、减(-)number分钟,返回date/datetime类型数据由第一个参数date/datetime决定。
addSeconds(date/datetime,+/-number)加(+)、减(-)number秒钟,返回date/datetime类型数据由第一个参数date/datetime决定。
addQuarters(date/datetime,+/-number)加(+)、减(-)number季度,返回date/datetime类型数据由第一个参数date/datetime决定。

localhost :) select
:-] addYears(now(),1) AS addYears_datetime,
:-] addMonths(now(),1) AS addMonths_datetime,
:-] addWeeks(now(),1) AS addWeeks_datetime,
:-] addDays(now(),1) AS addDays_datetime,
:-] addHours(now(),1) AS addHours_datetime,
:-] addMinutes(now(),1) AS addMinutes_datetime,
:-] addSeconds(now(),1) AS addSeconds_datetime,
:-] addQuarters(now(),1) AS addQuarters_datetime,
:-] addYears(today(),-1) AS subYears_date,
:-] addMonths(today(),-1) AS subMonths_date,
:-] addWeeks(today(),-1) AS subWeeks_date,
:-] addDays(today(),-1) AS subDays_date,
:-] addHours(today(),-1) AS subHours_date,
:-] addMinutes(today(),-1) AS subMinutes_date,
:-] addSeconds(today(),-1) AS subSeconds_date,
:-] addQuarters(today(),-1) AS subQuarters_date
:-] FORMAT Vertical;SELECTaddYears(now(), 1) AS addYears_datetime,addMonths(now(), 1) AS addMonths_datetime,addWeeks(now(), 1) AS addWeeks_datetime,addDays(now(), 1) AS addDays_datetime,addHours(now(), 1) AS addHours_datetime,addMinutes(now(), 1) AS addMinutes_datetime,addSeconds(now(), 1) AS addSeconds_datetime,addQuarters(now(), 1) AS addQuarters_datetime,addYears(today(), -1) AS subYears_date,addMonths(today(), -1) AS subMonths_date,addWeeks(today(), -1) AS subWeeks_date,addDays(today(), -1) AS subDays_date,addHours(today(), -1) AS subHours_date,addMinutes(today(), -1) AS subMinutes_date,addSeconds(today(), -1) AS subSeconds_date,addQuarters(today(), -1) AS subQuarters_date
FORMAT VerticalQuery id: 48f61674-916f-4c9a-9171-f52e447a7d2cRow 1:
──────
addYears_datetime:    2021-12-11 14:57:35
addMonths_datetime:   2021-01-11 14:57:35
addWeeks_datetime:    2020-12-18 14:57:35
addDays_datetime:     2020-12-12 14:57:35
addHours_datetime:    2020-12-11 15:57:35
addMinutes_datetime:  2020-12-11 14:58:35
addSeconds_datetime:  2020-12-11 14:57:36
addQuarters_datetime: 2021-03-11 14:57:35
subYears_date:        2019-12-11
subMonths_date:       2020-11-11
subWeeks_date:        2020-12-04
subDays_date:         2020-12-10
subHours_date:        2020-12-10 23:00:00
subMinutes_date:      2020-12-10 23:59:00
subSeconds_date:      2020-12-10 23:59:59
subQuarters_date:     2020-09-111 rows in set. Elapsed: 0.013 sec.

subtractYears(date/datetime,+/-number),subtractMonths(date/datetime,+/-number),subtractWeeks(date/datetime,+/-number),subtractDays(date/datetime,+/-number),subtractHours(date/datetime,+/-number),subtractMinutes(date/datetime,+/-number),subtractSeconds(date/datetime,+/-number),subtractQuarters (date/datetime,+/-number)

函数将Date/DateTime减去一段时间间隔,然后返回Date/DateTime
subtractYears(date/datetime,+/-number)加(-)、减(+)number年,返回date/datetime类型数据由第一个参数date/datetime决定。
subtractMonths(date/datetime,+/-number)加(-)、减(+)number月,返回date/datetime类型数据由第一个参数date/datetime决定。
subtractWeeks(date/datetime,+/-number)加(-)、减(+)number周,返回date/datetime类型数据由第一个参数date/datetime决定。
subtractDays(date/datetime,+/-number)加(-)、减(+)number天,返回date/datetime类型数据由第一个参数date/datetime决定。等价于date_add()
subtractHours(date/datetime,+/-number)加(-)、减(+)number小时,返回date/datetime类型数据由第一个参数date/datetime决定。
subtractMinutes(date/datetime,+/-number)加(-)、减(+)number分钟,返回date/datetime类型数据由第一个参数date/datetime决定。
subtractSeconds(date/datetime,+/-number)加(-)、减(+)number秒钟,返回date/datetime类型数据由第一个参数date/datetime决定。
subtractQuarters (date/datetime,+/-number)加(-)、减(+)number季度,返回date/datetime类型数据由第一个参数date/datetime决定。

localhost :) select
:-] subtractYears(now(),1) AS subtractYears_datetime,
:-] subtractMonths(now(),1) AS subtractMonths_datetime,
:-] subtractWeeks(now(),1) AS subtractWeeks_datetime,
:-] subtractDays(now(),1) AS subtractDays_datetime,
:-] subtractHours(now(),1) AS subtractHours_datetime,
:-] subtractMinutes(now(),1) AS subtractMinutes_datetime,
:-] subtractSeconds(now(),1) AS subtractSeconds_datetime,
:-] subtractQuarters (now(),1) AS subtractQuarters_datetime,
:-] subtractYears(today(),-1) AS subtractYears_date,
:-] subtractMonths(today(),-1) AS subtractMonths_date,
:-] subtractWeeks(today(),-1) AS subtractWeeks_date,
:-] subtractDays(today(),-1) AS subtractDays_date,
:-] subtractHours(today(),-1) AS subtractHours_date,
:-] subtractMinutes(today(),-1) AS subtractMinutes_date,
:-] subtractSeconds(today(),-1) AS subtractSeconds_date,
:-] subtractQuarters(today(),-1) AS subtractQuarters_date
:-] FORMAT Vertical;SELECTsubtractYears(now(), 1) AS subtractYears_datetime,subtractMonths(now(), 1) AS subtractMonths_datetime,subtractWeeks(now(), 1) AS subtractWeeks_datetime,subtractDays(now(), 1) AS subtractDays_datetime,subtractHours(now(), 1) AS subtractHours_datetime,subtractMinutes(now(), 1) AS subtractMinutes_datetime,subtractSeconds(now(), 1) AS subtractSeconds_datetime,subtractQuarters(now(), 1) AS subtractQuarters_datetime,subtractYears(today(), -1) AS subtractYears_date,subtractMonths(today(), -1) AS subtractMonths_date,subtractWeeks(today(), -1) AS subtractWeeks_date,subtractDays(today(), -1) AS subtractDays_date,subtractHours(today(), -1) AS subtractHours_date,subtractMinutes(today(), -1) AS subtractMinutes_date,subtractSeconds(today(), -1) AS subtractSeconds_date,subtractQuarters(today(), -1) AS subtractQuarters_date
FORMAT VerticalQuery id: b12d1080-0af5-4b4f-9210-5b745614d265Row 1:
──────
subtractYears_datetime:    2019-12-11 15:12:24
subtractMonths_datetime:   2020-11-11 15:12:24
subtractWeeks_datetime:    2020-12-04 15:12:24
subtractDays_datetime:     2020-12-10 15:12:24
subtractHours_datetime:    2020-12-11 14:12:24
subtractMinutes_datetime:  2020-12-11 15:11:24
subtractSeconds_datetime:  2020-12-11 15:12:23
subtractQuarters_datetime: 2020-09-11 15:12:24
subtractYears_date:        2021-12-11
subtractMonths_date:       2021-01-11
subtractWeeks_date:        2020-12-18
subtractDays_date:         2020-12-12
subtractHours_date:        2020-12-11 01:00:00
subtractMinutes_date:      2020-12-11 00:01:00
subtractSeconds_date:      2020-12-11 00:00:01
subtractQuarters_date:     2021-03-111 rows in set. Elapsed: 0.007 sec.

timeSlots(StartTime,Duration[,Size])

对于从StartTime开始并持续Duration秒的时间间隔,它将返回一个时间间隔数组,其中包括该时间间隔中的点,四舍五入到以秒为单位的Size。"大小"是一个可选参数:常数UInt32,默认设置为1800
Duration时间间隔,参数类型必须为UInt32。
size每一分钟的大小,参数类型必须为UInt32。
示例如下规律自己体会:

localhost :) select timeSlots(now(),cast(360 AS UInt32),cast(60 AS UInt32));SELECT timeSlots(now(), CAST(360, 'UInt32'), CAST(60, 'UInt32'))Query id: 99814a48-a84f-41f0-a184-eb4983e714c1┌─timeSlots(now(), CAST(360, 'UInt32'), CAST(60, 'UInt32'))───────────────────────────────────────────────────────────────────────────────────────────────────┐
│ ['2020-12-11 15:56:00','2020-12-11 15:57:00','2020-12-11 15:58:00','2020-12-11 15:59:00','2020-12-11 16:00:00','2020-12-11 16:01:00','2020-12-11 16:02:00'] │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘1 rows in set. Elapsed: 0.003 sec.localhost :) select timeSlots(now(),cast(180 AS UInt32),cast(60 AS UInt32));SELECT timeSlots(now(), CAST(180, 'UInt32'), CAST(60, 'UInt32'))Query id: 8411ee34-67b3-4bbc-b884-a795c58c53ad┌─timeSlots(now(), CAST(180, 'UInt32'), CAST(60, 'UInt32'))─────────────────────────────────┐
│ ['2020-12-11 15:56:00','2020-12-11 15:57:00','2020-12-11 15:58:00','2020-12-11 15:59:00'] │
└───────────────────────────────────────────────────────────────────────────────────────────┘1 rows in set. Elapsed: 0.002 sec.localhost :) select timeSlots(now(),cast(120 AS UInt32),cast(60 AS UInt32));SELECT timeSlots(now(), CAST(120, 'UInt32'), CAST(60, 'UInt32'))Query id: 95cceab8-728a-4b30-841b-add385101c62┌─timeSlots(now(), CAST(120, 'UInt32'), CAST(60, 'UInt32'))───────────┐
│ ['2020-12-11 15:57:00','2020-12-11 15:58:00','2020-12-11 15:59:00'] │
└─────────────────────────────────────────────────────────────────────┘1 rows in set. Elapsed: 0.003 sec.localhost :) select timeSlots(now(),cast(60 AS UInt32),cast(60 AS UInt32));SELECT timeSlots(now(), CAST(60, 'UInt32'), CAST(60, 'UInt32'))Query id: 7732a379-d10b-4626-817e-f9b86deb502b┌─timeSlots(now(), CAST(60, 'UInt32'), CAST(60, 'UInt32'))─┐
│ ['2020-12-11 15:57:00','2020-12-11 15:58:00']            │
└──────────────────────────────────────────────────────────┘1 rows in set. Elapsed: 0.002 sec.localhost :) select timeSlots(now(),cast(1 AS UInt32),cast(60 AS UInt32));SELECT timeSlots(now(), CAST(1, 'UInt32'), CAST(60, 'UInt32'))Query id: 93eb12a4-2f3c-453e-a28d-4648179328bf┌─timeSlots(now(), CAST(1, 'UInt32'), CAST(60, 'UInt32'))─┐
│ ['2020-12-11 15:57:00']                                 │
└─────────────────────────────────────────────────────────┘1 rows in set. Elapsed: 0.002 sec.

FROM_UNIXTIME()

参数类型可以为整型和DateTime类型。
FROM_UNIXTIME()只有整数类型的单个参数时,它的作用toDateTime()与返回DateTime的方法相同。

localhost :) select toUnixTimestamp(now());SELECT toUnixTimestamp(now())Query id: 9b7738e5-b98c-4842-9673-9568cf9fbc28┌─toUnixTimestamp(now())─┐
│             1607674077 │
└────────────────────────┘1 rows in set. Elapsed: 0.003 sec.localhost :) SELECT FROM_UNIXTIME(1607674077) AS DateTime ;SELECT FROM_UNIXTIME(1607674077) AS DateTimeQuery id: f9e9e336-d8ab-4074-a3d6-bf535248f7a0┌────────────DateTime─┐
│ 2020-12-11 16:07:57 │
└─────────────────────┘1 rows in set. Elapsed: 0.002 sec.localhost :) SELECT FROM_UNIXTIME(toUnixTimestamp(now())) AS DateTime ;SELECT FROM_UNIXTIME(toUnixTimestamp(now())) AS DateTimeQuery id: 877b6e58-5358-47c4-8a58-60ddf3aa6891┌────────────DateTime─┐
│ 2020-12-11 16:08:50 │
└─────────────────────┘1 rows in set. Elapsed: 0.002 sec.

FROM_UNIXTIME()有两个参数时,第一个是整数或DateTime,第二个是常量格式字符串,它的作用formatDateTime与返回String类型相同。

localhost :) SELECT FROM_UNIXTIME(1607674077, '%Y-%m-%d %R:%S') AS DateTime ;SELECT FROM_UNIXTIME(1607674077, '%Y-%m-%d %R:%S') AS DateTimeQuery id: 2b272dec-be90-4138-a808-f5c3677aa17c┌─DateTime────────────┐
│ 2020-12-11 16:07:57 │
└─────────────────────┘1 rows in set. Elapsed: 0.003 sec.localhost :) SELECT FROM_UNIXTIME(toUnixTimestamp(now()), '%Y-%m-%d %R:%S') AS DateTime ;SELECT FROM_UNIXTIME(toUnixTimestamp(now()), '%Y-%m-%d %R:%S') AS DateTimeQuery id: f662c4ac-360f-4572-8898-48646f8d124e┌─DateTime────────────┐
│ 2020-12-11 16:08:41 │
└─────────────────────┘1 rows in set. Elapsed: 0.003 sec.

总结:
到此,clickhouse基本时间日期函数都在此说明。

Clickhouse 时间日期函数实战总结相关推荐

  1. Clickhouse 时间日期函数

    Clickhouse 时间日期函数 Clickhouse 时间日期函数注:所有的时间日期函数都可以在第二个可选参数中接受时区参数.示例:Asia / Yekaterinburg.在这种情况下,它们使用 ...

  2. clickhouse时间日期函数

    字符串转日期 --字符串转日期,这个重要 select toDateTime('2020-07-30 10:10:10') as x,toTypeName(x); +----------------- ...

  3. Sybase时间日期函数

    http://yangkun0318.blog.163.com/blog/static/131809433201031295947642/ Sybase时间日期函数 2010-04-12 09:59: ...

  4. 时间转化_Excel常见时间日期函数全讲解,10个函数教你如何进行日期转化

    在工作中我们经常会碰到一些需要转化或者计算时间日期的工作,这里就需要我们用到一些常见的Excel时间日期函数.今天我们就通过十个案例来教大家,如何在实际工作中对时间日期进行转化处理. 函数一.显示当前 ...

  5. R语言-时间日期函数

    R语言时间日期函数 1. 返回当前日期时间,有两种方式: Sys.time() date() 举例 format(Sys.time(), "%a %b %d %X %Y %Z")# ...

  6. PostgreSQL的时间/日期函数使用

    PostgreSQL的常用时间函数使用整理如下: 一.获取系统时间函数 1.1 获取当前完整时间 select now(); david=# select now();now ------------ ...

  7. 收集SQLite中的时间日期函数[ZT]

    声明:文章摘自:http://www.xueit.com/html/2009-02/27_649_00.html 在插入数据时为了插入时间,我自己用了这个方法在数据库中: sql = "IN ...

  8. linux时间与日期函数,Linux时间日期函数

    最近跑实验的时候需要获取函数的执行时间,因此变在网上搜集整理了,在Linux下跟时间有关的函数,保存在此,以备不时之需- asctime(将时间和日期以字符串格式表示) 相关函数 time,ctime ...

  9. pg日期转周_PostgreSQL的时间/日期函数使用

    PostgreSQL的常用时间函数使用整理如下: 一.获取系统时间函数 1.1 获取当前完整时间 select now(); david=# selectnow(); now ------------ ...

最新文章

  1. AI一分钟 | 贾跃亭这次真的没钱了,法拉第只够发到年底工资;自动驾驶风云:Uber竟被爆料收购窃取Waymo机密的公司
  2. ​清华来了第二位菲尔兹奖得主,是丘成桐力荐的老朋友Caucher Birkar
  3. 蓝牙协议分析_BLE地址类型
  4. [模板]欧几里得算法/扩展欧几里得
  5. Arcgis Server发布服务
  6. Spring Security使用Hibernate实现自定义UserDetails
  7. linux mysql导出导入表_linux mysql 数据库操作导入导出 数据表导出导入
  8. 使用Scikit-Learn,XGBoost,LightGBM和CatBoost进行梯度增强
  9. 当你不能回答别人的提问时怎么办
  10. Vue中 引入外部字体并使用
  11. 《工业设计史》第五章:设计改革
  12. DZ插件-免费DZ插件大全汇集所有插件功能
  13. Charles 手机https抓包
  14. 【宣讲会感言】腾讯实习生
  15. From Mother Teresa
  16. OpenWrt挂载U盘(NTFS)并在网上邻居共享访问
  17. 毕设新思路附源码 | 微医平台项目详细步骤
  18. zabbix学习资料收集
  19. 网络标准(从一类线到八类线)
  20. 免费的网盘您知道哪些?

热门文章

  1. Ubuntu怎么念?
  2. 2023辽宁安全员(B证)模拟考试试卷
  3. heic格式怎么改成jpg?
  4. pdf转换成jpg转换器的使用方法
  5. 公交APP评测:谁是最好用的公交线路查询软件?
  6. 【推荐】献给在这个世界上摇摆不定的朋友们
  7. HTML代码格式化工具
  8. 大学生创新创业万学答案
  9. 积木报表JimuReport支持的15种数据库类型介绍
  10. 周志华机器学习(6):支持向量机