GBase 8s
其他
问答
获取当前时间的时间戳
发表于2024-08-21 15:18:53209次浏览5个评论
为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【GBase版本】:
【操作系统】:
【CPU】:
【问题描述】*:你好,gabse8s这一块如何获取当前时间的时间戳啊,类似于mysql的unix_timestamp()方法一样;

评论
登录后才可以发表评论
hugolin发表于 1年前
liaosnet发表于 1年前
链接中的语句,加个默认值,不带参数将返回当前时间戳
drop function if exists UNIX_TIMESTAMP(datetime year to second);
create dba function UNIX_TIMESTAMP(datestr datetime year to second default current year to second)
returns bigint with (not variant);
define rc_char varchar(30);
if datestr < datetime(1970-01-01 08:00:00) year to second then
let rc_char = datetime(1970-01-01 08:00:00) year to second - datestr;
return 0 - ((replace(substr(rc_char,1,9),'-')*86400)::bigint + substr(rc_char,17,2)*1 + substr(rc_char,14,2)*60 + substr(rc_char,11,2)*3600);
else
let rc_char = datestr - datetime(1970-01-01 08:00:00) year to second;
return ((substr(rc_char,1,9)*86400)::bigint + substr(rc_char,17,2)*1 + substr(rc_char,14,2)*60 + substr(rc_char,11,2)*3600);
end if;
end function;
drop function if exists UNIX_TIMESTAMP(datetime year to second);
create dba function UNIX_TIMESTAMP(datestr datetime year to second default current year to second)
returns bigint with (not variant);
define rc_char varchar(30);
if datestr < datetime(1970-01-01 08:00:00) year to second then
let rc_char = datetime(1970-01-01 08:00:00) year to second - datestr;
return 0 - ((replace(substr(rc_char,1,9),'-')*86400)::bigint + substr(rc_char,17,2)*1 + substr(rc_char,14,2)*60 + substr(rc_char,11,2)*3600);
else
let rc_char = datestr - datetime(1970-01-01 08:00:00) year to second;
return ((substr(rc_char,1,9)*86400)::bigint + substr(rc_char,17,2)*1 + substr(rc_char,14,2)*60 + substr(rc_char,11,2)*3600);
end if;
end function;
最佳回答
GBase用户14614发表于 1年前
直接用 dbinfo('utc_current') 也可以
路路路发表于 8个月前
有问题可以再发帖
xinyiedc!发表于 2个月前
蹲个答案。
热门帖子
- 12025-12-01浏览数:182764
- 22023-05-09浏览数:25062
- 42023-09-25浏览数:18526
- 52020-05-11浏览数:17529
建自定义函数