[1182]clickhouse的日期函数

2023-11-06

时间获取

获取当前时间戳:select toUnixTimestamp(now())
获取指定时间的时间戳:select toUnixTimestamp('2021-05-11 14:37:37')
获取当前日期时间:select now()
获取当前日期:select today()
获取昨日日期:select yesterday()

时间转换

日期时间转日期:select toDate('2021-05-11 14:31:31')
日期转时间戳:select toUnixTimestamp(toDateTime('2021-05-01'))
时间戳转日期时间:select toDateTime(1620714857)

时间计算

下面的函数都可以使用date或者datetime,即toDate() or toDateTime()

获取指定时间的年份:select toYear(toDateTime('2021-05-11 10:10:10'))
获取当前日期的年份:select toYear(now())
获取指定时间的月份:select toMonth(toDateTime('2021-05-11 10:10:10'))
获取当前日期的月份:select toMonth(now())
获取指定时间的季度:select toQuarter(toDateTime('2021-05-11 10:10:10'))
获取当前年份中的第几天:select toDayOfYear(toDateTime('2021-05-11 10:10:10'))
获取当前月份的第几天:select toDayOfMonth(toDateTime('2021-05-11 10:10:10'))
获取星期几:select toDayOfWeek(toDateTime('2021-05-11 10:10:10'))
获取指定时间的小时:select toHour(toDateTime('2021-05-11 10:10:10'))
获取指定时间的分钟:select toMinute(toDateTime('2021-05-11 10:10:10'))
获取指定时间的秒数:select toSecond(toDateTime('2021-05-11 10:10:10'))

获取当前年份的第一天:select toStartOfYear(toDateTime('2021-05-11 10:10:10'))
获取当前月份的第一天:select toStartOfMonth(toDateTime('2021-05-11 10:10:10'))
获取当前季度的第一天:select toStartOfQuarter(toDateTime('2021-05-11 10:10:10'))
获取当前周的第一天:select toMonday(toDateTime('2021-05-11 10:10:10'))
获取当前时间的起始时间:select toStartOfDay(toDateTime('2021-05-11 10:10:10'))
获取当前时间的起始小时时间:select toStartOfHour(toDateTime('2021-05-11 10:10:10'))
获取当前时间的起始分钟时间:select toStartOfMinute(toDateTime('2021-05-11 10:10:10'))
获取当前时间的起始秒数时间:select toStartOfSecond(toDateTime('2021-05-11 10:10:10'))

时间增加一年:select addYears(toDateTime('2021-05-11 10:10:10'),1)
时间增加一月:select addMonths(toDateTime('2021-05-11 10:10:10'),1)
时间增加一周:select addWeeks(toDateTime('2021-05-11 10:10:10'),1)
时间增加一天:select addDays(toDateTime('2021-05-11 10:10:10'),1)
时间增加一小时:select addHours(toDateTime('2021-05-11 10:10:10'),1)
时间增加一分钟:select addMinutes(toDateTime('2021-05-11 10:10:10'),1)
时间增加一秒钟:select addSeconds(toDateTime('2021-05-11 10:10:10'),1)
时间增加一季度:select addQuarters(toDateTime('2021-05-11 10:10:10'),1)

增加用add,减去用subtract,例如时间减去一年:select subtractYears(toDateTime('2021-05-11 10:10:10'),1)

计算时间差值:dateDiff()
SELECT
    dateDiff('year', toDateTime('2021-05-11 10:10:10'), toDateTime('2021-05-11 18:04:44')) as diff_years,
    dateDiff('month', toDateTime('2021-05-11 10:10:10'), toDateTime('2021-05-11 18:04:44')) as diff_months,
    dateDiff('week', toDateTime('2021-05-11 10:10:10'), toDateTime('2021-05-11 18:04:44')) as diff_week,
    dateDiff('day', toDateTime('2021-05-11 10:10:10'), toDateTime('2021-05-11 18:04:44')) as diff_days,
    dateDiff('hour', toDateTime('2021-05-11 10:10:10'), toDateTime('2021-05-11 18:04:44')) as diff_hours,
    dateDiff('minute', toDateTime('2021-05-11 10:10:10'), toDateTime('2021-05-11 18:04:44')) as diff_minutes,
    dateDiff('second', toDateTime('2021-05-11 10:10:10'), toDateTime('2021-05-11 18:04:44')) as diff_seconds

select 
-- 当月第一天  toStartOfYear(),toMonday(),toStartOfQuarter()
toStartOfMonth(now()) start_month,
-- 当月月末
toStartOfMonth(addMonths(now(),1))-1 end_month,
-- 当年月末
toStartOfYear(addMonths(now(),12))-1 end_year,
--
parseDateTimeBestEffort('20220427'),
--
toString(20220427),
toFloat32('20220427'),
ifnull(null,1)

时间格式化

日期时间转为整形:toYYYYMMDDhhmmss()
将字符串型的日期转为时间类型:parseDateTimeBestEffort()

SELECT 
    now() AS dt,
    toYYYYMMDDhhmmss(dt) AS dt_int,
    toString(dt) AS dt_str,
    parseDateTimeBestEffort(toString(dt_int)) AS datetime;

yyyymmdd 转yyyy-mm-dd 20220501 转2022-05-10
select toDate(parseDateTimeBestEffort('20220510'));

参考:https://blog.csdn.net/anyitian/article/details/116664687
https://blog.csdn.net/u013225189/article/details/124709013

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[1182]clickhouse的日期函数 的相关文章

  • SQL Server 2000 - 将查询分成 15 分钟的块

    我有一个连续时间数据集 我想使用 sql 将其分成 15 分钟的块 如果我能帮忙的话 我不想必须创建一个新表才能做到这一点 i e 时间 计数09 15 109 30 309 45 010 00 210 15 3 有谁知道我该怎么做 我认为
  • 除了连接之外还有其他方法可以提高性能吗?

    除了连接之外还有其他方法可以提高性能吗 编辑 gbn 相关连接或相关子查询与存在子句哪个更好 https stackoverflow com questions 3305891 为什么没有人提到嵌套循环连接 这不是 JOIN 的 替代 方式
  • 无法通过 PyODBC 连接创建数据库

    我在用pyodbc in python 2 7 with MS SQL Server 2008R 这是我创建数据库的代码 SQL代码单独在SQL中工作正常 但在python中执行时崩溃 SQL command IF EXISTS SELEC
  • 在 Microsoft Access 中编写查询,字段描述错误 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 这个问题是由拼写错误或无法再重现的问题引起的 虽然类似的问题可能是on topic help on topic在这里 这个问题的解决方式不
  • 在 RDBMS 中何时使用三元关系而不是聚合?

    我想知道什么时候可以表示实体集和三元关系之间的关系 我明白聚合的好处 但是如果实体集和关系集之间的关系中没有属性 为什么还要使用聚合呢 例如 一名研究生 具有学生编号和姓名 正在从事一个项目 具有 pid 开始日期和结束日期 并且学生从事的
  • 如何解决postgresql中group by和聚合函数的问题

    我正在尝试编写一个查询来划分两个 SQL 语句 但它显示了我 ERROR column temp missed must appear in the GROUP BY clause or be used in an aggregate fu
  • 如何将 OLE 自动化日期值转换为 SQL Server 中的日期

    我的应用程序存储日期作为 OLE 自动化与DateTime ToOADate 命令 我需要创建一个 SQL 视图来显示存储的日期 如何快速将双精度数转换为日期 Does SELECT CAST CASE WHEN OLEFLOAT gt 0
  • PL/SQL 触发器问题

    我正在尝试编写一个触发器来填充包含员工更新工资信息的表 我现在遇到一个无法解决的问题 这是要填充的表 drop table SalUpdates cascade constraints create table SalUpdates Sal
  • 将行连接成 CLOB

    关于这个主题有很多类似的问题 但我找不到任何解决方案来考虑最终结果对于 varchar2 来说太大的任何问题 所以我想做的就是改变这一点 Column1 Column2 1 Hello 1 world 1 please help 2 Tha
  • 将计算列设置为非空时遇到问题

    我在将计算列设置为时遇到问题not null 我想要实现的是C001 C002 等 同时将其设置为not null 我在论坛上读到 这可以通过使用 NULL 值的默认值 0 来实现 E g ISNULL Price Taxes 0 我尝试应
  • SQLAlchemy - 连接表关系上的 order_by

    我正在使用声明式 SQLAlchemy 并且有三个模型 Role Permission and RolePermission 在我的Role模型 我有以下内容 class Role Base name Column u NAME VARCH
  • 为列名创建动态选择获取值 - 在 SQL Server 中

    请帮助我创建一个选择 SQL 语句 其中的结果列名称是从原始表中的列值获取的 表名是Device Part 用户可以输入很多DeviceCode其中有许多动态PartTypeName PartTypeName 值为PartInfo 这可能有
  • 在 Android 中使用 SQL (JDBC) 数据库

    在旧的 Java 应用程序中 我使用以下代码连接到 SQL 数据库并将其用于某些查询 private Connection dbConnection null System setProperty derby system home C C
  • Oracle 12 对 SQL 中的本地集合类型有问题吗?

    长话短说 我建议讨论下面看到的代码 运行时 Oracle 11 编译器引发 PLS 00306 调用 PIPE TABLE 时参数提示的数量或类型错误 PLS 00642 SQL 语句中不允许使用本地集合类型 Oracle 12编译下面的包
  • oracle中是否有相当于concat_ws的东西?

    我有大量的列试图聚合在一起 其中大多数都有 NULL 值 我想分隔确实以 出现的值但我在oracle中找不到有效的方法来做到这一点 CONCAT WS 正是我所需要的 因为它不会在 NULL 值之间添加分隔符 但 Oracle 不支持这一点
  • MySQL中Join同表临时表

    我喜欢在 MySQL 中加入一个失败的临时表 这个想法很简单 CREATE TEMPORARY TABLE temp table LIKE any other table srsly it does not matter which tab
  • android sqlite 如果不存在则创建表

    创建新表时遇到一点问题 当我使用 CREATE TABLE 命令时 我的新表按应有的方式形成 但是当我退出活动时 应用程序崩溃 并且我在 logcat 中得到一个表已存在 如果我使用 CREATE TABLE IF NOT EXISTS 则
  • 查找一列中具有相同值而另一列中具有其他值的行?

    我有一个 PostgreSQL 数据库 将用户存储在users他们参与的表格和对话conversation桌子 由于每个用户可以参与多个对话 并且每个对话可以涉及多个用户 因此我有一个conversation user链接表来跟踪哪些用户正
  • 如何在 SQL 中的时区中使用“America/New_York”

    我有这段代码在 SQL 中运行良好 但是我想使用不同的时区格式 例如 America New York 代替 US Eastern Standard Time SELECT TODATETIMEOFFSET CAST CURRENT TIM
  • SQL Server - 在设置 COLLATE Latin1_General_CS_AS 的情况下搜索不区分大小写

    家长提问 https stackoverflow com questions 50974562 sql server update to match and replace only exact words感谢 Iamdave 部分问题得到

随机推荐

  • 【Java基础】使用HashMap和For循环查找数据并且统计耗费时长

    准备一个ArrayList其中存放3000000 三百万个 Hero对象 其名称是随机的 格式是hero 4位随机数 hero 3229 hero 6232 hero 9365 因为总数很大 所以几乎每种都有重复 把名字叫做 hero 55
  • ICS大作业--hello程序人生

    摘 要 Hello是每个程序员第一个接触的程序 在本文中利用计算机系统所学的知识 基于Linux平台 通过gcc objdump gdb edb等工具 从c源程序的预处理开始 跟踪分析程序编译 汇编 链接 进程管理 存储管理 I O管理整个
  • 基于Matlab的激光雷达与单目摄像头联合外参标定

    1 背景介绍 目前团队正在与某主机厂合作开发L4级自动驾驶出租车项目 所用的传感器包括80线激光雷达和单目摄像头 为了充分利用Lidar和Cam各自的优势 设计了一种融合算法 需要获得Lidar2Camera的联合外参 前期使用Autowa
  • Java数组&二维数组

    Java数组 二维数组 1 一维数组 1 1 数组介绍 数组就是存储数据长度固定的容器 存储多个数据的数据类型要一致 1 2 数组的定义格式 1 2 1 第一种格式 数据类型 数组名 示例 int arr double arr char a
  • python调用多级目录中的文件_python复制多层目录下的文件至其他盘符对应的目录中...

    tmp c cmd js d TZT2 0 js d TZT js d TZT 346 226 207 346 241 243 350 257 264 346 230 216 json d c modules config js d css
  • Go_包、工程管理

    包 包其实就是文件夹 把文件分类放到不同的包利于管理 作用 如果把所有的代码都放在一个文件中 后续的可维护性 阅读性都比较差 所以可以使用包的来区分不同的模块 功能分别放在不同包中 然后其它的文件使用到功能就调用就可以了 在同一个包下是函数
  • android studio在XML预览中出现Rendering Problems问题

    http blog csdn net u014365838 article details 52078501 如图所示 出现问题的原因是style不和规范 虽然没有大问题 编译也可以通过 不过总有些碍眼 解决方法 1 在styles xml
  • apache-ant build.xml 实例

    文章目录 version apache ant 1 9 15 build xml
  • php发送邮件样式_php简单实现发送带附件的邮件

    这篇文章主要介绍了php简单实现发送带附件的邮件 涉及附件上传及邮件发送的相关技巧 需要的朋友可以参考下 本文实例讲述了php简单实现发送带附件的邮件 分享给大家供大家参考 具体如下 下面是静态html代码 带附件的邮件发送 发送人 收件人
  • 多gpu训练梯度如何计算,求和是否要求平均

    作者 智星云服务 链接 https www zhihu com question 271226455 answer 1521784627 来源 知乎 著作权归作者所有 商业转载请联系作者获得授权 非商业转载请注明出处 作者 itsAndy
  • libc.so.6

    libc so 6是一个类似于WINDOWS下的一个快捷指向型的文件 用命令LN产生 ln s root arm unknown linux gnu arm unknown linux gnu lib libc so root worksp
  • uni-app生产环境去掉console

    uni app生产环境去掉console 运行期判断 运行期判断是指代码已经打入包中 仍然需要在运行期判断平台 此时可使用 uni getSystemInfoSync platform 判断客户端环境是 Android iOS 还是小程序开
  • kubernetes安全检测工具-kube-bench

    一 kube bench基础介绍 kube bench是基于go语言开发 一款针对kubernetes进行安全检测的工具 主要是检测kubernetes集群的各个组件的配置 确认配置文件是否符合安全基线标准 输出检测报告 并给出修复建议 从
  • 蓝桥杯 算法训练 拿金币 Java

    import java util Scanner public class Main public static void main String args Scanner scanner new Scanner System in int
  • 第十二届蓝桥杯javaB组刷题day2

    1 直线 我们思路 暴力解法 将所有可能的情况列举出来 故需要两个坐标的横纵坐标 便需要四个for循环来进行遍历 出现问题 需要排除斜率为0的情况 后面再单独进行相加 因为需要set来加入斜率 而一条斜线y kx b 包括k和b set只能
  • Linux ceontOS7.X 安装RabbitMQ

    安装erlang环境 https blog csdn net qq 37279783 article details 90515409 下载 解压MQ 下载 https www rabbitmq com releases rabbitmq
  • 测试用例设计方法---等价类划分法

    1 等价类划分法 1 1 定义 是把所有可能输入的数据 即程序的输入域划分策划国内若干部分 子集 然后从每一个子集中选取少数具有代表性的数据作为测试用例 方法是一种重要的 常用的黑盒测试用例设计方法 1 1划分等价类 1 有效等价类 指对于
  • 大师兄!SLAM 为什么需要李群与李代数?

    from https mp weixin qq com s sVjy9kr 8qc9W9VN78JoDQ 作者 electech6 来源 计算机视觉life 编辑 Tony 很多刚刚接触SLAM的小伙伴在看到李群和李代数这部分的时候 都有点
  • 编译原理第二版4.4答案

    4 4 节的练习 4 4 1 为下面的每个文法设计一个预测分析器 并给出预测分析表 你可能先要对文法进行提取左公因子或者消除左递归的操作 练习 4 2 2 中 1 7 中的文法 解答 S gt 0 S 1 0 1 step1 提取左公因子
  • [1182]clickhouse的日期函数

    文章目录 时间获取 时间转换 时间计算 时间格式化 时间获取 获取当前时间戳 select toUnixTimestamp now 获取指定时间的时间戳 select toUnixTimestamp 2021 05 11 14 37 37