从DBeaver(SQL)中的Timestamp列中添加和减去1小时
我有一个列为“Timestamp”的表。我想创建两列,其中包含该时间戳的-1小时和+1小时 这是时间戳的格式:2020-08-31 11:05:55 我想再得到两列,分别显示-1小时和+1小时:2020-08-31 10:05:55和2020-08-31 12:05:55 谢谢 如果您的DBMS是Microsoft SQL Server,DATEADD()]可能是您的最佳选择。如果您使用的是类似于Oracle的东西,那么由一个没有名字的马所提供的ANSI interval解决方案是一个非常好的、易于阅读的选项 例如,下面的代码生成从DBeaver(SQL)中的Timestamp列中添加和减去1小时,sql,timestamp,vertica,dbeaver,Sql,Timestamp,Vertica,Dbeaver,我有一个列为“Timestamp”的表。我想创建两列,其中包含该时间戳的-1小时和+1小时 这是时间戳的格式:2020-08-31 11:05:55 我想再得到两列,分别显示-1小时和+1小时:2020-08-31 10:05:55和2020-08-31 12:05:55 谢谢 如果您的DBMS是Microsoft SQL Server,DATEADD()]可能是您的最佳选择。如果您使用的是类似于Oracle的东西,那么由一个没有名字的马所提供的ANSI interval解决方案是一个非常好的、
SELECT '2020-08-31 11:05:55' AS time_stamp,
DATEADD(hour, 1, '2020-08-31 11:05:55') plus_one_hour,
DATEADD(hour, -1, '2020-08-31 11:05:55') minus_one_hour;
--输出
如果您的DBMS是Microsoft SQL Server,则DATEADD()]可能是您的最佳选择。如果您使用的是类似于Oracle的东西,那么由一个没有名字的马所提供的ANSI interval解决方案是一个非常好的、易于阅读的选项
例如,下面的代码生成
SELECT '2020-08-31 11:05:55' AS time_stamp,
DATEADD(hour, 1, '2020-08-31 11:05:55') plus_one_hour,
DATEADD(hour, -1, '2020-08-31 11:05:55') minus_one_hour;
--输出
在标准ANSI SQL中,您可以简单地减去一个间隔:
select the_column - interval '1' hour as one_hour_before,
the_column,
the_column + interval '1' hour as one_hour_after
from the_table
where ....
在标准ANSI SQL中,您可以简单地减去一个间隔:
select the_column - interval '1' hour as one_hour_before,
the_column,
the_column + interval '1' hour as one_hour_after
from the_table
where ....
没有名字的马是对的。标准方法是加/减间隔 然而,Vertica日期算法提供了一些非常简单的快捷方式 当您加/减一个整数值时,它被解释为天数:
SELECT CURRENT_TIMESTAMP, CURRENT_TIMESTAMP+1, CURRENT_TIMESTAMP-1;
?column? | ?column? | ?column?
-------------------------------+-------------------------------+-------------------------------
2020-09-03 00:38:54.781675-04 | 2020-09-04 00:38:54.781675-04 | 2020-09-02 00:38:54.781675-04
如果要加/减:
- 小时您必须使用1/24
- 分钟您必须使用1/1440
- 秒您必须使用1/86400
SELECT CURRENT_TIMESTAMP, CURRENT_TIMESTAMP+1/24, CURRENT_TIMESTAMP-1/24;
?column? | ?column? | ?column?
-------------------------------+-------------------------------+-------------------------------
2020-09-03 00:38:54.781675-04 | 2020-09-03 01:38:54.781675-04 | 2020-09-02 23:38:54.781675-04
SELECT CURRENT_TIMESTAMP, CURRENT_TIMESTAMP+1/1440, CURRENT_TIMESTAMP-1/1440;
?column? | ?column? | ?column?
-------------------------------+-------------------------------+-------------------------------
2020-09-03 00:38:54.781675-04 | 2020-09-03 00:39:54.781675-04 | 2020-09-03 00:37:54.781675-04
没有名字的马是对的。标准方法是加/减间隔 然而,Vertica日期算法提供了一些非常简单的快捷方式 当您加/减一个整数值时,它被解释为天数:
SELECT CURRENT_TIMESTAMP, CURRENT_TIMESTAMP+1, CURRENT_TIMESTAMP-1;
?column? | ?column? | ?column?
-------------------------------+-------------------------------+-------------------------------
2020-09-03 00:38:54.781675-04 | 2020-09-04 00:38:54.781675-04 | 2020-09-02 00:38:54.781675-04
如果要加/减:
- 小时您必须使用1/24
- 分钟您必须使用1/1440
- 秒您必须使用1/86400
SELECT CURRENT_TIMESTAMP, CURRENT_TIMESTAMP+1/24, CURRENT_TIMESTAMP-1/24;
?column? | ?column? | ?column?
-------------------------------+-------------------------------+-------------------------------
2020-09-03 00:38:54.781675-04 | 2020-09-03 01:38:54.781675-04 | 2020-09-02 23:38:54.781675-04
SELECT CURRENT_TIMESTAMP, CURRENT_TIMESTAMP+1/1440, CURRENT_TIMESTAMP-1/1440;
?column? | ?column? | ?column?
-------------------------------+-------------------------------+-------------------------------
2020-09-03 00:38:54.781675-04 | 2020-09-03 00:39:54.781675-04 | 2020-09-03 00:37:54.781675-04
@一匹没有名字的马对不起,我不太熟悉这些术语,但我正在连接Vertica。那是DBMS吗?@a_horse_,没有名字嗨,对不起,我不太熟悉这些术语,但我正在连接Vertica。那是数据库管理系统吗?