我是靠谱客的博主 落后云朵,最近开发中收集的这篇文章主要介绍Clickhouse--时区,年,季度,半年SQL 年,季度,半年时区Linux下修改系统时间,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Clickhouse--时区,年,季度,半年

  • SQL 年,季度,半年
  • 时区
    • 默认设置
  • Linux下修改系统时间
    • 获取系统时间
    • 设计服务器时间

SQL 年,季度,半年

-- 月度
SELECT concat(toString(toYear(now())),'年',toString(toMonth(now())),'月');
-- 季度
SELECT concat(toString(toYear(now())),'年',if(toMonth(now())/6>1,if(toMonth(now())/3>3,'4季度','3季度'),if(toMonth(now())/3>1,'2季度','1季度')));
-- 半年度
SELECT concat(toString(toYear(now())),'年',if(toMonth(now())/6>1,'下半年','上半年'));
-- 日期格式化
SELECT FROM_UNIXTIME(now(),'%Y-%m');
-- 季度
select toString(toQuarter(now()));

时区

默认设置

Clickhouse默认是读取操作系统的时区。

Clickhouse 提供设置时区参数

1.修改设置
sudo vim /etc/clickhouse-server/config.xml
<timezone>Asia/Shanghai</timezone>
由于clickhouse是俄罗斯人主导开发的,默认设置为Europe/Moscow
2.重启服务器:
sudo service clickhouse-server restart
配置文件说明如下:
<!-- Server time zone could be set here.
Time zone is used when converting between String and DateTime types,
when printing DateTime in text formats and parsing DateTime from text,
it is used in date and time related functions, if specific time zone was not passed as an argument.
Time zone is specified as identifier from IANA time zone database, like UTC or Africa/Abidjan.
If not specified, system time zone at server startup is used.
Please note, that server could display time zone alias instead of specified name.
Example: W-SU is an alias for Europe/Moscow and Zulu is an alias for UTC.
-->
<!-- <timezone>Europe/Moscow</timezone> -->
时区在日期时间相关的函数,若指定时区作为参数。在Datetime和String类型之间进行转换。
时区的指定是按照IANA标准的时区库指定的,可以在Linux系统中通过命令查询
若不指定则使用系统启动的时区。

使用默认服务器时区

-- 北京时区
SELECT
now() AS BJ_time,
toString(BJ_time),
formatDateTime(now(), '%F %T') AS bj_time,
toTimeZone(now(), 'America/New_York') AS NY_time
Query id: 3e50f4ec-2f7e-4f15-b8b1-6aa9af87bfe4
┌─────────────BJ_time─┬─toString(now())─────┬─bj_time─────────────┬─────────────NY_time─┐
│ 2022-01-10 23:08:522022-01-10 23:08:522022-01-10 23:08:522022-01-10 10:08:52 │
└─────────────────────┴─────────────────────┴─────────────────────┴─────────────────────┘
-- 伦敦时间
SELECT
now() AS LD_time,
toString(LD_time),
formatDateTime(now(), '%F %T') AS ld_time,
toTimeZone(now(), 'America/New_York') AS NY_time
Query id: ce2558a9-de2f-41fb-8059-fb2be76cca1f
┌─────────────LD_time─┬─toString(now())─────┬─ld_time─────────────┬─────────────NY_time─┐
│ 2022-01-10 15:09:312022-01-10 15:09:312022-01-10 15:09:312022-01-10 10:09:31 │
└─────────────────────┴─────────────────────┴─────────────────────┴─────────────────────┘
  • DataGrip 查询北京时区时间
    在这里插入图片描述
  • DataGrip 查询伦敦时区时间
    在这里插入图片描述

以上截图和客户端世家执行结果不相同,DataGrip 默认采用的是世界标准时间
idea访问clickhouse的话,需要配置连接高级选项,设置
use_time_zone = UTC+8,use_server_time_zone=false
应用即可
在这里插入图片描述

Linux下修改系统时间

获取系统时间

date -R

在这里插入图片描述
+0800 为东八区时区

设计服务器时间

先设日期

date -s 20140712

再设时间

date -s 18:30:50

一台机器还好说,多了你就会烦了。有没有一步到位的办法呢?几经搜索发现有!

date 071218302014(月日时分年)

这样可以一步到位。但是!但是什么呢,对于Linux来说,这样的写法太不human

date -s “20140712 18:30:50”

这样就可以一步到位

时间设置完了就要保存了。如果你会正常关机还好说。系统关的时候会保存一次,可是如果你可能不正常关机的话,可以这么先保存一下设置

hwclock --systohc

最后

以上就是落后云朵为你收集整理的Clickhouse--时区,年,季度,半年SQL 年,季度,半年时区Linux下修改系统时间的全部内容,希望文章能够帮你解决Clickhouse--时区,年,季度,半年SQL 年,季度,半年时区Linux下修改系统时间所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部