UNIX_TIMESTAMP函数介绍
关键字:
unix_timestamp、unix时间戳、人大金仓、KingbaseES
1. unix_timestamp函数介绍
UNIX_TIMESTAMP函数是KES mysql模式下的一个非常实用的函数,他主要用于将日期时间转换为UNIX时间戳,而UNIX时间戳就是从公元1970年1月1日00:00:00开始算起一直到给定的时间中一共经过的秒数的总和,而unix_timestamp不仅可以传入当前时间,计算一共经过的时间,还可以输入给定时间,计算这两个节点中经过的时间。使用这一函数可以进行日期时间的比较、排序和计算等常见的操作,下面将讲述一下unix_timestamp函数的使用方法。
2.支持的参数类型
参数 | 类型 |
没有入参 | 无 |
有入参 | Date |
Timestamp | |
Time Int、bigint、numeric | |
Null | |
空值 |
3、案例实现
这里介绍一个函数from_unixtime,能够将unix_timestamp函数算出来的unix时间戳的值重新返回计算,输出一开始unix_timestamp函数输入时的时间值,具体实现只需要将unix时间戳值作为参数传入from_unixtime就可以执行。
3.1不传入参数时
select unix_timestamp();
select from_unixtime(1701422955);
3.2 当传入date类型时
这里需要注意,传入参数时,需要将传入的对应字符参数强制转换为对应需要的类型,这里和MySQL存在差异,不强制转换的话会输出0。
kes的表现:
MySQL的表现:
select unix_timestamp('2022-10-10'::date);
select from_unixtime(1665331200);
这里可以看出,如果输入的是具体的date日期的话,如果没有指定具体的time时间,那么默认的time时间就是00:00:00。
3.3 当传入timestamp类型时
select unix_timestamp('2022-10-10 12:12:12'::timestamp);
select from_unixtime(1665375132);
3.4当传入整数类型时
select unix_timestamp('20221010');
select from_unixtime(1665331200);
3.5 当传入null时
select unix_timestamp(null);
3.6当传入空值时
select unix_timestamp(' ');这里所说的空值是指空格字符串
参考资料
《KingbaseES SQL语言参考手册》