暂无图片
MySQL date_format改写
我来答
分享
暂无图片 匿名用户
MySQL date_format改写

Kingbase ES 是否有类似MySQL的date_format日期格式函数

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
哇哈哈

金仓数据库KingbaseES 插件kdb_date_function

1. kdb_date_function介绍
kdb_date_function是一个兼容mysql数据库date相关函数的扩展。

使用时需要create extension kdb_date_function,不需要时drop extension kdb_date_function即可。

2. date_add
date_add — 实现日期的相加

语法:

date_add(ts timestamp, iv interval) 返回 timestamp。 date_add(tstz timestamptz, iv interval) 返回 timestamptz。

描述:

date_add会实现timestamp或timestamptz与指定的interval进行相加的运算。

参数:
iv 用于日期相加运算中的interval类型值。
ts 用于日期相加运算中的timestamp类型值。
tstz 用于日期相加运算中的timestamptz类型值。
返回值:
返回计算完成的特定的日期类型值。
注解:
举例:
select date_add('2000-10-10'::timestamp,interval '1 year');
date_add
--------------------------
Wed Oct 10 00:00:00 2001
(1 row)

select date_add('2010-10-10 12:00:00'::timestamp,interval '1 year 1 day 2 hour');
date_add
--------------------------
Tue Oct 11 14:00:00 2011
(1 row)
3. dateadd
dateadd — 实现日期的相加

语法:
dateadd(i_unit text, i_value numeric, i_date time) 返回 time。
dateadd(i_unit text, i_value numeric, i_date timestamp) 返回 timestamp。
dateadd(i_unit text, i_value numeric, i_date timestamptz) 返回 timestamptz。
描述:

实现timestamp或timestamptz或time类型与指定的格式进行相加的运算。

参数:

i_unit 指定要相加的i_value的格式。
i_value 指定要相加的数量。
i_date 指定被相加的日期。
返回值: 
返回计算完成的特定的日期类型值。
注解:
i_unit的值可以使'second','minute','hour','day','week','month','year'等。

举例:
SELECT dateadd(year,9998,'0001-01-01 00:00:00'::timestamptz);
dateadd
------------------------------
Fri Jan 01 00:00:00 9999 PST
(1 row)

SELECT dateadd(year,201,'1900-01-01 00:00:00'::timestamptz);
dateadd
------------------------------
Sat Jan 01 00:00:00 2101 PST
(1 row)

SELECT dateadd(year,30,'1970-01-01 00:00:00'::timestamptz);
dateadd
------------------------------
Sat Jan 01 00:00:00 2000 PST
(1 row)

SELECT dateadd(year,-9998,'9999-12-31 00:00:00'::timestamptz);
dateadd
------------------------------
Mon Dec 31 00:00:00 0001 PST
(1 row)

SELECT dateadd(year,-100,'2000-12-31 00:00:00'::timestamptz);
dateadd
------------------------------
Mon Dec 31 00:00:00 1900 PST
(1 row)

SELECT dateadd(year,-34,'2004-12-31 00:00:00'::timestamptz);
dateadd
------------------------------
Thu Dec 31 00:00:00 1970 PST
(1 row)

4. datediff
比较两个日期之间的差距

语法:

datediff(d1 date, d2 date) 返回integer。 datediff(t text, d1 date, d2 date) 返回int8。 datediff(t text, d1 time, d2 time) 返回int8。 datediff(t text, d1 timetz, d2 timetz) 返回int8。 datediff(t text, d1 timestamp, d2 timestamp) 返回int8。 datediff(t text, d1 timestamptz, d2 timestamptz) 返回int8。

描述:

比较两个日期之间的指定的text(如果存在此参数)的格式的差距。

参数:

t  指定的要返回的日期差距的格式。
d1,d2 进行比较的两个日期值。

返回值 :返回text类型指定的格式的整数值。

注解:t的值可以使'second','minute','hour','day','week','month','year'等。

举例:

SELECT datediff('year','0001-01-01'::date,'9999-12-31'::date);
datediff
----------
9998
(1 row)

SELECT datediff('year','1900-01-01 00:00:00'::date,'2000-12-31 00:00:00'::date);
datediff
----------
100
(1 row)

SELECT datediff(month,'0001-01-01 00:00:00'::date,'9999-12-31 00:00:00'::date);
datediff
----------
119987
(1 row)

SELECT datediff(month,'1900-01-01 00:00:00'::date,'2000-12-31 00:00:00'::date);
datediff
----------
1211
(1 row)

SELECT datediff('month','0001-01-01 00:00:00'::date,'9999-12-31 00:00:00'::date);
datediff
----------
119987
(1 row)

SELECT datediff('month','1900-01-01 00:00:00'::date,'2000-12-31 00:00:00'::date);
datediff
----------
1211
(1 row)

5. date_format
得到指定日期的指定格式的值。

语法:

date_format(d timestamp, t text) 返回 text。 date_format(d timestamptz, t text) 返回 text。

描述:

返回日期类型值的text指定的格式。

参数:

t 指定的要返回的日期的格式。
d 目标格式的值。
返回值: 返回text指定的text类型的值。

注解: t的值可以是nls_date_format类型的所有值。
举例:
select date_format('2000-10-10 12:00:00','mm-yyyy-dd hh24:mi:ss');
date_format
---------------------
10-2000-10 12:00:00
(1 row)

暂无图片 评论
暂无图片 有用 1
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
insert into select 太慢是什么原因导致的?
回答 1
索引太多了影响性能
人大金仓数据库报错 current transaction is abort, commands ignored untile end of transaction block select ..... for update nowait
回答 1
nowait是如果遇到锁就会中断查询,所以有以上报错,如果没有nowait就会发生锁等待。所以需要排查锁阻塞。
vacuum freeze 报错,concurrent insert in progress within table ss怎么处理?
回答 1
可能出现坏块,重建索引
人大金仓KingbaseES V8R6数据库生产大量wal日志怎么解决?
回答 1
调整checkpointtimeout、maxwalsize参数
人大金仓KingbaseES V8R3 sys_rman全备后validate校验备份无法完成怎么处理?
回答 1
recovery.log写入大量lock/dev/shm/kb.lockfailed日志,查看networkrewind脚本代码,应该是文件加锁失败,建议重启系统释放资源。
人大金仓KingbaseES V8R6系统自启动无法启动是什么原因导致的 ?
回答 1
系统启动过程,data共享存储未加载,导致数据库自启动失败
丢失了数据库密码,如何恢复?
回答 1
1单机还是集群?是普通用户还是管理员用户?2单机库可以通过修改data目录下的配置文件,syshba.conf。将local登陆认证方式改为trust。然后reload重新加载配置文件。登陆数据库不需
人大金仓KingbaseES V8R6 两地三中心架构下如何配置读写分离?
回答 1
将生产中心节点加入到读写分离,根据业务需求添加
如何将数据从客户端通过copy命令导入数据库?
回答 1
通过copy导入数据,要求数据在数据库服务器上,如果数据在客户端机器上,需要用\copy
金仓数据库安装需要开放哪些防火墙端口?
回答 1
V8R6集群需要开放以下端口:数据库54321端口,通用机开放ssh22,专用机esserver的8890。非集群数据库:只需开放数据库监听端口,典型如54321端口。
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~