内置函数

当前版本:v1.4, 更新时间:2019-10-18

1. version 函数

松果时序数据库提供获取当前服务版本的内置函数version,使用方式如下:

SELECT version()

2. now函数

松果时序数据库提供获取服务器当前时间的内置函数now,在查询或插入数据时可以使用now函数获取服务器当前时间,精确到秒,例如以下示例:

insert into tab01(devid, tstamp, ...) values(1, now(), ...)

now函数提供不带参数、带一个参数及带两个参数的扩展,以提供更加丰富的功能。

  • 不带参数
    即获取服务器当前时间,如上面的示例

  • 第一个参数, 时间偏移
    对当前时间加或减一个时间,时间单位有:秒(s),分钟(m),小时(h),天(d)
    示例:


select now(),now(-10s),now(10s)
--查询结果
--|now()               |now(-10s)           |now(10s)
--|2019-10-13 22:21:04 |2019-10-13 22:20:54 |2019-10-13 22:21:14
  • 第二个参数,时间对齐
    对当前时间对齐到指定的单位,时间单位有:秒(s,second),分钟(m,minute),小时(h,hour),天(d,day),需要注意的是对齐到天时,获取的时间是数据库服务所在时区的当天零点。
    示例:

select now(),now(0s,'minute'),now(0s,'hour')
--查询结果
--|now()               |now(0s,'minute')    |now(0s,'hour')
--|2019-10-13 22:28:09 |2019-10-13 22:28:00 |2019-10-13 22:00:00

利用now函数的参数可以扩展一些用法:

--查询表tab1中设备1最近5分钟内的数据
select * from tab01 
where devid = 1 and tstamp >= now(-5m) and tstamp < now() 

--查询表tab1中设备1当天以小时为单位的统计数据
select tstamp, max(fieldName) from tab1 
where devid = 1 and tstamp >= now(0s, 'day') and tstamp < now(1d, 'day') 
group by tstamp 1h