lightdb中日期加减

在PostgreSQL中可以直接对时间进行加减运算,但不是支持ANSI SQL的DATEADD/SUBSTRACT函数:
SELECT now()::timestamp + '1 year';  --当前时间加1年
SELECT now()::timestamp + '1 month';  --当前时间加一个月
SELECT now()::timestamp + '1 day';  --当前时间加一天,如果减一天,要用+ '-1 day'。
SELECT now()::timestamp + '1 hour';  --当前时间加一个小时
SELECT now()::timestamp + '1 min';  --当前时间加一分钟
SELECT now()::timestamp + '1 sec';  --加一秒钟
select now()::timestamp + '1 year 1 month 1 day 1 hour 1 min 1 sec';  --加1年1月1天1时1分1秒
SELECT now()::timestamp + (col || ' day')::interval FROM table --把col字段转换成天 然后相加
now()返回的是timestamp with time zone类型。需要先强转。 

zjh@postgres=# select sysdate+'48 day';
?column?
---------------------
2023-03-03 20:23:16
(1 row)

lightdb 23.2将支持sysdate(timestamp without time zone的语法糖)+N日期计算。

lightdb datetime也是timestamp with time zone类型的别名,兼容mysql而在。

ANSI SQL:2011 日期加减 https://docs.teradata.com/r/Teradata-VantageTM-SQL-Date-and-Time-Functions-and-Expressions/March-2019/DateTime-and-Interval-Functions-and-Expressions/Arithmetic-Operators-and-ANSI-DateTime-and-Interval-Data-Types/Adding-or-Subtracting-Numbers-from-DATE

https://kontext.tech/article/390/teradata-sql-dateadd-function-alternative-for-add-subtract-days-or-months#:~:text=In%20ANSI%20SQL%2C%20you%20can%20use%20DATEADD%20function,add%20or%20subtract%20date%20units%20from%20date%20types.

posted @ 2023-01-14 20:30  zhjh256  阅读(35)  评论(0编辑  收藏  举报