内置函数

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

1. version 函数

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

  1. SELECT version()

2. now函数

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

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

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

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

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

  1. select now(),now(-10s),now(10s)
  2. --查询结果
  3. --|now() |now(-10s) |now(10s)
  4. --|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),需要注意的是对齐到天时,获取的时间是数据库服务所在时区的当天零点。示例:
  1. select now(),now(0s,'minute'),now(0s,'hour')
  2. --查询结果
  3. --|now() |now(0s,'minute') |now(0s,'hour')
  4. --|2019-10-13 22:28:09 |2019-10-13 22:28:00 |2019-10-13 22:00:00

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

  1. --查询表tab1中设备1最近5分钟内的数据
  2. select * from tab01
  3. where devid = 1 and tstamp >= now(-5m) and tstamp < now()
  4.  
  5. --查询表tab1中设备1当天以小时为单位的统计数据
  6. select tstamp, max(fieldName) from tab1
  7. where devid = 1 and tstamp >= now(0s, 'day') and tstamp < now(1d, 'day')
  8. group by tstamp 1h